For Remedy versions 7.6.04 SP5, 8.1.00 SP1 and 8.8.00, the Mid-tier configuration property will come with a security token property, arsystem.securitytoken_enable=true , and when this is true, the back channel requests will contain an "sToken" value similar to: "sToken" := "07D2-1JZP-JJPU-M2MS-0EAT-HDPT-MGYP-MBIY"; If the property above is true, the data which is posted to the server as part of a WebRemedyBackChannel() request during script replay should contain the sToken value. Should the data not contain the sToken, then a "HTTP: 500 - internal server error" response from the server is the likely outcome. The images below show a comparison of the recorded and replayed TrueLog file showing the data being posted to the server via the WebRemedyBackChannelPost() request, as well as the sToken included as part of the data within the WebRemedyBackChannel() in the recorded BDL script. Note the token appended to the end of the data within the recorded Truelog, compared to the data sent during Replay. To avoid the issue, the following approaches can be used: 1) In Silk Performer 15.0 and later versions, project types are available which will handle the sToken automatically during record, these project types are: Remedy 7.6.04 SP4, Remedy 7.6.04 SP5, RemedyAR 8.1 SP1, and RemedyAR 8.8. Choose the correct project type based on your application type. 2) Should a version prior to Silk Performer 15.0 be in use, then the sToken will need to be appended to the data that is sent as part of the request. This can be achieved by going through the following steps: - Open the Remedy.bdh file - Insert the following constant const CRemedyDataEndTag := " /RemedyXml "; - A function entitled WebRemedyBackChannelPost() is included, replace it with the following: // wrapper function for WebPagePost // param nDataLength will be ignored function WebRemedyBackChannelPost(sUrl : string); sData : string; nDataLength : number optional; sContent : string optional; sTimer : string optional; formUrl : form optional) : boolean API_FUNCTION var sRemedyData : string; sRemainingData: string; nPos : number; begin nPos := StrSearch(sData, CRemedyDataEndTag, STR_SEARCH_FIRST); if nPos 0 then SubStr(sData, sRemedyData, 1, nPos+Strlen(CRemedyDataEndTag)-1); SubStr(sData, sRemainingData, nPos+Strlen(CRemedyDataEndTag), Strlen(sData)-StrLen(sRemedyData)); end; WebRemedyBackChannelPost := WebPagePost(sUrl, RemedyBackChannelData(sRemedyData)+sRemainingData, STRING_COMPLETE, sContent, sTimer, formUrl); end WebRemedyBackChannelPost; Should the errors persist after making the changes, then it is likely the Token will need to be customized. Carry out two identical recordings against the application and verify whether the Token value is dynamic. If dynamic, you will need to search through the TrueLog file to determine where the Token comes in and proceed to customize accordingly using the Customize Session handling wizard. The following KB article also provides details on how to Troubleshoot applications which use the sToken - Troubleshooting Remedy applications which use a security Token Property.
↧