Workaround for issue with Product based Contract

Workaround for issue with Product based Contract

There are issues with creating Product based Contracts. 

While trying to create Contracts for Specific products and selecting about 50 or more products, we are getting the Loading failed error as shown below.
This is because of reaching the throttle limit. 



Also, while trying to save the Contract with the Products selected so far, it throws the below error. 




We have a workaround for the application to allow 200 products to be associated with a Contract. 

  • Kindly navigate to the SupportCenter Plus directory > webapps > ROOT > WEB-INF > security and open the security-assetaccess.xml file using a notepad editor with admin access.
  • (Take a backup of the file and save it outside the Support Center Plus directory before making the below changes)
  • Search for /servlet/Select2Servlet path and operation-value="product" line (in bold) as shown below. Kindly add the parameters highlighted as shown below this line. 

<url operation-param="module" operation-value="product" path="/servlet/Select2Servlet" roles="ViewInventoryWS,CreatePurchaseOrder,ModifyPurchaseOrder,AddBillingContract">
         <throttles key="url.path+url.dynamic_key" name="servlet_action" scope="APPSERVER" window="ROLLING">
            <throttle duration="1m" lock-period="5m" threshold="200"/>
        </throttles>
            <param description="we will be having many params for it" max-len="-1" name="params" secret="true" type="String"/>
            <param name="page" range=">=0" type="long"/>
            <param max-len="1000" name="searchText" type="String"/>
            <param name="callback" regex="jQuery[0-9]+_[0-9]+"/>
 </url>

  • Save this file. 
The above will allow you to select multiple products in a short period without giving you a loading error due to the throttle limit. 


>> After doing the above, in the same security sub-folder, please open the security-billingaccess.xml file using a Notepad editor. 

  • Then please search for productsList name, under the below tag as shown, 

<url csrf="true" method="post" path="/AccountContract.do" roles="AddBillingContract">




  • Replace the highlighted parameter, 
<param max-occurrences="1" name="productsList" regex="[[0-9]+,[0-9]+]+"/>

with 

<param max-occurrences="1" max-len="-1" regex="(\d)+(?:(\,)(\d)+){0,199}(\,)?" name="productsList"/>

The above steps will resolve the error, "One of the given inputs exceeds the maximum length."

This is flagged as a known issue and the corresponding issue ID is 6852.

                    New to ADSelfService Plus?