# RXS_GetUrlVar() This subprocedure is used to retrieve variables from the URL that was used to call the current program as a web service. Variables on a URL are specified in name-value pairs. For example: `http://mysite.com/rxs/mywebservice?customer=1&code=3` In this example, there are two variables: **customer** and **code**, and each of them has a value of 1 and 3 respectively. **Note:** This API is only meant to be used in a program acting as a webservice. Using it in other programs will throw errors. ## Subprocedure Prototype | Field | Description | |---|---| | ` D RXS_GetUrlVar... D PR Extproc('RXS_GetUrlVar') Opdesc D Like(RXS_Var16Mv_t) D Rtnparm` | Returns the data retrieved from the URL variable. | | ` D UrlVar 300A Value` | Specify the name of the URL variable which is to be retrieved. | | ` D Input Like(RXS_Var16Mv_t) D Options(*Nopass:*Varsize)` | | ## Example Code ### Ex. 1: Retrieve Values from the Querystring of a URL ```rpgle *-------------------------------------------------------------- * This example code retrieves variable values from the URL that * was used to call this program. * For example, if this program were called with the following URL: * http://mysite.com/rxs/mywebservice?customer=1&code=3 * The output in the job log would be: * Customer: 1 * Code: 3 *-------------------------------------------------------------- H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER) /define RXSV6R1 /copy QRPGLECPY,RXSCB D VarCustomer S Like(RXS_Var1Kv_t) D VarCode S Like(RXS_Var1Kv_t) /free VarCustomer = RXS_GetUrlVar( 'customer' ); VarCode = RXS_GetUrlVar( 'code' ); RXS_JobLog( 'Customer: %s' : VarCustomer ); RXS_JobLog( 'Code: %s' : VarCode ); *INLR = *ON; /end-free ``` ### Ex. 2: Retrieve Values from the Path of a URL ```rpgle *-------------------------------------------------------------- * This example code retrieves variable values from the URL that * was used to call this program. * For example, if this program were called with the following URL: * http://mysite.com/rxs/mywebservice/customer/15/code/43 * The output in the job log would be: * Customer: 5 * Code: 43 *-------------------------------------------------------------- H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER) /define RXSV6R1 /copy QRPGLECPY,RXSCB D VarCustomer S Like(RXS_Var1Kv_t) D VarCode S Like(RXS_Var1Kv_t) /free VarCustomer = RXS_GetUrlVar( 'customer/' ); VarCode = RXS_GetUrlVar( 'code/' ); RXS_JobLog( 'Customer: %s' : VarCustomer ); RXS_JobLog( 'Code: %s' : VarCode ); *INLR = *ON; /end-free ```