0

LR script throws warning and fails for the JSON Response.

Below is the script

char *request_json_base;

char *request_json;

web_add_header("Content-Type", "application/json; charset=utf-8");

request_json_base=  "{\"GLDefaultId\":0,\"ProjectId\":{ContactProjectId},\"CoaMainId\":10,\"UserId\":{UserId},\"Notes\":\"\",\"PRO_GLDefaultValue\":[{\"GLDefaultValueId\":0,\"GLDefaultId\":0,\"SegmentId\":16,\"Alias\":\"ACT\",\"SegmentType\":\"DETAIL\",\"FunctionTypeId\":0,\"Value\":\"&&&\",\"Mask\":\"&&&\",\"IsRequired\":true,\"LastModified\":null,\"IsCoaRequired\":true},{\"GLDefaultValueId\":0,\"GLDefaultId\":0,\"SegmentId\":17,\"Alias\":\"ST\",\"SegmentType\":\"SET\",\"FunctionTypeId\":0,\"Value\":\"&&\",\"Mask\":\"&&\",\"IsRequired\":false,\"LastModified\":null,\"IsCoaRequired\":false}]}",

request_json = lr_eval_string(request_json_base);

lr_save_string(request_json, "REQUEST_JSON_PARAM");

web_custom_request("PRO_GLDefault",
    "URL=https://{URL}/PayrollWebApi/V1/PRO_GLDefault?userId={UserId}",
    "Method=POST",
    "TargetFrame=",
    "Resource=0",
    "RecContentType=application/json",
    "Referer=",
    "Snapshot=t299.inf",
    "Mode=HTML",
    "EncType=application/json",
    "Body={REQUEST_JSON_PARAM}",
LAST); 

Below is Replay Log :

Action3_SUNP_ProjectSetup_RatesandSetupInfo.c(81): Warning: The string '"GLDefaultValueId":0,"GLDefaultId":0,"SegmentId":16,"Alias":"ACT","SegmentType":"DETAIL","FunctionTypeId":0,"Value":"&&&","Mask":"&&&","IsRequired":true,"LastModified":null,"IsCoaRequired":true' with parameter delimiters is not a parameter.

Action3_SUNP_ProjectSetup_RatesandSetupInfo.c(81): Warning: The string '"GLDefaultValueId":0,"GLDefaultId":0,"SegmentId":17,"Alias":"ST","SegmentType":"SET","FunctionTypeId":0,"Value":"&&","Mask":"&&","IsRequired":false,"LastModified":null,"IsCoaRequired":false' with parameter delimiters is not a parameter.

Action3_SUNP_ProjectSetup_RatesandSetupInfo.c(83): Notify: Saving Parameter "REQUEST_JSON_PARAM = {"GLDefaultId":0,"ProjectId":1810,"CoaMainId":10,"UserId":67,"Notes":"","PRO_GLDefaultValue":[{"GLDefaultValueId":0,"GLDefaultId":0,"SegmentId":16,"Alias":"ACT","SegmentType":"DETAIL","FunctionTypeId":0,"Value":"&&&","Mask":"&&&","IsRequired":true,"LastModified":null,"IsCoaRequired":true},{"GLDefaultValueId":0,"GLDefaultId":0,"SegmentId":17,"Alias":"ST","SegmentType":"SET","FunctionTypeId":0,"Value":"&&","Mask":"&&","IsRequired":false,"LastModified":null,"IsCoaRequired":false}]}".

Action3_SUNP_ProjectSetup_RatesandSetupInfo.c(85): {"$id":"1","Message":"An error has occurred."}

Below is Body of Original Request call:

"Body={\"GLDefaultId\":0,\"ProjectId\":{ContactProjectId},\"CoaMainId\":10,\"UserId\":{UserId},\"Notes\":\"\",\"PRO_GLDefaultValue\":[{\"GLDefaultValueId\":0,\"GLDefaultId\":0,\"SegmentId\":16,\"Alias\":\"ACT\",\"SegmentType\":\"DETAIL\",\"FunctionTypeId\":0,\"Value\":\"&&&\",\"Mask\":\"&&&\",\"IsRequired\":true,\"LastModified\":null,\"IsCoaRequired\":true},{\"GLDefaultValueId\":0,\"GLDefaultId\":0,\"SegmentId\":17,\"Alias\":\"ST\",\"SegmentType\":\"SET\",\"FunctionTypeId\":0,\"Value\":\"&&\",\"Mask\":\"&&\",\"IsRequired\":false,\"LastModified\":null,\"IsCoaRequired\":false}]}", LAST);

Below is the Successful Response during the recording:

Request : { "GLDefaultId": 0, "ProjectId": 1806, "CoaMainId": 10, "UserId": 2, "Notes": "", "PRO_GLDefaultValue": [ { "GLDefaultValueId": 0, "GLDefaultId": 0, "SegmentId": 16, "Alias": "ACT", "SegmentType": "DETAIL", "FunctionTypeId": 0, "Value": "&&&", "Mask": "&&&", "IsRequired": true, "LastModified": null, "IsCoaRequired": true }, { "GLDefaultValueId": 0, "GLDefaultId": 0, "SegmentId": 17, "Alias": "ST", "SegmentType": "SET", "FunctionTypeId": 0, "Value": "&&", "Mask": "&&", "IsRequired": false, "LastModified": null, "IsCoaRequired": false } ] }

Response: { "$id": "1", "GLDefaultId": 1, "ProjectId": 1806, "CoaMainId": 10, "Notes": "", "PRO_GLDefaultValue": [ { "$id": "2", "GLDefaultValueId": 1, "GLDefaultId": 1, "Alias": "ACT", "FunctionTypeId": 0, "Value": "&&&", "SegmentId": 16, "IsRequired": true, "ModifiedOn": "7/1/2017 4:48:06 PM", "ModifiedBy": 2, "PRO_GLDefault": { "$ref": "1" }, "LastModified": null }, { "$id": "3", "GLDefaultValueId": 2, "GLDefaultId": 1, "Alias": "ST", "FunctionTypeId": 0, "Value": "&&", "SegmentId": 17, "IsRequired": false, "ModifiedOn": "7/1/2017 4:48:06 PM", "ModifiedBy": 2, "PRO_GLDefault": { "$ref": "1" }, "LastModified": null } ] }

Please advise me how to overcome this

Thanks, Raj

rpagadala
  • 796
  • 2
  • 15
  • 31

2 Answers2

0

Warning is just that, a warning, not an error, and expected if you have curly braces in your post

What is line 85, where the error is generated?

James Pulley
  • 5,606
  • 1
  • 14
  • 14
  • Line 85 is response where it's failing and i suspect warning causing for failure. I have added original request to the original post – rpagadala Jul 31 '17 at 16:21
  • You have not answered what is line 85 – James Pulley Jul 31 '17 at 16:28
  • Line 85 is the request call web_custom_request("PRO_GLDefault", "URL=https://{URL}/PayrollWebApi/V1/PRO_GLDefault?userId={UserId}", – rpagadala Jul 31 '17 at 16:36
  • The error is coming from your back end host, "{"$id":"1","Message":"An error has occurred."}" As the administrator of the host about the source of the error. – James Pulley Jul 31 '17 at 17:10
  • I have figured it out where was the issue.The issue was with the API deployment.In new build deployment it's working as expected! – rpagadala Jul 31 '17 at 23:08
0

See these two lines:

request_json_base=  "{\"GLDefaultId\":0,\"ProjectId\":{ContactProjectId},\"CoaMainId\":10,\"UserId\":{UserId},\"Notes\":\"\",\"PRO_GLDefaultValue\":[{\"GLDefaultValueId\":0,\"GLDefaultId\":0,\"SegmentId\":16,\"Alias\":\"ACT\",\"SegmentType\":\"DETAIL\",\"FunctionTypeId\":0,\"Value\":\"&&&\",\"Mask\":\"&&&\",\"IsRequired\":true,\"LastModified\":null,\"IsCoaRequired\":true},{\"GLDefaultValueId\":0,\"GLDefaultId\":0,\"SegmentId\":17,\"Alias\":\"ST\",\"SegmentType\":\"SET\",\"FunctionTypeId\":0,\"Value\":\"&&\",\"Mask\":\"&&\",\"IsRequired\":false,\"LastModified\":null,\"IsCoaRequired\":false}]}",

request_json = lr_eval_string(request_json_base);

They are not doing what you think they are doing. You are neither allocating space for this data ( see malloc() in combination with a char * variable), nor are you assigning the value to the variable correctly for the C language (see strcpy() )

Another reference here on Stackoverflow

How to correctly assign a new string value?

James Pulley
  • 5,606
  • 1
  • 14
  • 14