Grantor Management provides a solution for providing financial assistance to Government organizations. Grantor supports end-to-end process of collecting data from grantee and disbursing funds based on rules. Key features of grantor process include Program management, Application, Assessment, Agreement, Change Request, Claims and Payments. Application and change request uses web request form to capture data specific to grantee. Application is generated from application form (web request) automatically, form can be filled either by an applicant externally or internally by a processor. As soon as application form is submitted the application is generated based on form data.
Web Request is a form based interface in CRM to support request of specific services in a web browser using internet. The requestor fills the data and submits back to the CRM system which generates a transaction with the attribute web request in the CRM system. The transaction related data is managed in the transaction and request-specific XML data is linked to the transaction as request. XML data structure holds data throughout the session of the application form process which increases the performance of the application. Limitation of XML web request is on holding table data on the form, and the data will not be retained in stateless application. CRM should use shared memory or server cookies to store the data or implement enhancement to insert rows into XML data structure.
Web Request framework
Web request is configured in CRM->E-Commerce->E-Service->Web request-> Define Request categories. Under request category, data structure with fields used in the form will be defined. Request category implementation will be defined to link form values to one order object fields. Views on request category can be defined with BSP or ADOBE forms. Link between the Request category and transaction type is defined in process assignment block of Program. Data stored in request category structure will be available throughout the process of capturing data from form until the creation of application.
Below diagram illustrates how the web request is called during runtime. HTML page built in the web browser is based on the HTML formatting defined in the BSP layout as well as the attributes of the input fields defined in the request data structure. The data on the request data structure is derived using the server page scripting. The relationship between an input field of the HTML layout and the field content is created through XPATH.
Implementation of CRM_SERVICE_WEBREQ badi plays a major role in data exchange during server events. To access and set the data in the XML structure in runtime, class CL_UXS_XML_SERVICES is used. Method GET_VALUE_VIA_XPATH is used to get data from the form fields and SET_VALUE_VIA_XPATH is used to set data to the form fields.
XML request data is stored in content repository. SAP presets the content category CRM_WEBREQ for web requests and corresponding content category CRM_WEBREQ in the SAP database.
Tables enhancement in Web Request
Standard grantor process doesn’t support tables in web request. Projects need tables on the form to capture multi line data.
1. Method changes for adding Tables to Web Request -
a. Insert Path – A static method of class CL_UXS_XML_SERVICES=>XSLT_INSERT_PATH is enhanced to insert a new child node into the XML if a new
line should be added.
b. Delete Path –A static method of class CL_UXS_XML_SERVICES=>DELETE_ELEMENT_VIA_XPATH is needed to delete a node from the XML if a line
should be deleted.
c. Reading lines on BSP Layout – Add the method GET_NUMBER_OF_LINES to class CL_UWS_FORM_RUNTIME_BSP_SCR.
2. BSP application changes –
a. Create a page attribute index with type I.
b. In Event handler add additional rows.
c. Add/delete button to handle the event in layout.
For rendering data on views include code changes in layout to get number of lines using
CL_UWS_FORM_RUNTIME_BSP_SCR=>GET_NUMBER_OF_LINES and getting data from request category structure.
3. BADI changes - To update data in tables implement the BADI CRM_SERVICE_WEBREQ, methods FORM_ON_CREATION, FORM_ON_INITIALIZATION,
By including tables feature in web request, data stored in tables will be carried forward throughout the screens, and enhancements related to changing the form data from application life cycle will be minimized.