Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Create REST Integration wizard throws NPE while generating rules

SA-85779

Summary



On using the below sample JSON in the Create Integration wizard to generate the Data Model to send JSON requests, the wizard displays a NullPointerException.

{
   "accountNonMonDetailsRequest":{
      "nonMonDetailsRequest":{
         "clientSource":"R",
         "requestAction":"R",
         "requestFunction":"A",
         "requestDetails":{
            "accountNumber":"1234567890",
            "numberOfDays":0,
            "numberOfMonths":0,
            "transactionCodeGroup":{
               "transactionCode":[
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  ""
               ]
            }
         },
         "pagingDetails":{
            "numberOfRows":"",
            "startRow":"",
            "endRow":"",
            "startKeyGroup":{
               "startKey":""
            },
            "endKeyGroup":{
               "endKey":""
            }
         }
      }
   }
}



Error Messages



[WebContainer : 431] [TABTHREAD2] [PEGCustSvc:01.30.01] (internal.util.PRServiceUtils) ERROR xxxx.xxx-xxx.xxx|xx.xx.xxx.xxx Pega01 - Rule Generator thrown exception: 
java.lang.NullPointerException
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.addRequestDTSteps(RuleGeneratorREST.java:767)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.addRequestDTSteps(RuleGeneratorREST.java:826)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.addRequestDTSteps(RuleGeneratorREST.java:808)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.addRequestDTSteps(RuleGeneratorREST.java:808)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.addRequestDTSteps(RuleGeneratorREST.java:808)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.addRequestDTSteps(RuleGeneratorREST.java:808)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.addRequestDataTransformInfo(RuleGeneratorREST.java:528)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.addDataPageInfoForREST(RuleGeneratorREST.java:411)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.processConnectorMetadata(RuleGeneratorREST.java:193)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.generateRules(RuleGeneratorREST.java:160)
    at com.pega.pegarules.integration.config.internal.mapping.RuleGeneratorREST.evaluateRules(RuleGeneratorREST.java:132)
    at com.pega.pegarules.integration.engine.internal.util.PRServiceUtils.generateRulesFromMetadata(PRServiceUtils.java:1665)
    at com.pega.pegarules.integration.engine.internal.util.PRServiceUtils.evaluateRulesFromMetadata(PRServiceUtils.java:1747)
    at com.pegarules.generated.activity.ra_action_pzevaluaterules_741023a7c733dbad47a0375bb3f8491a.step4_circum0(ra_action_pzevaluaterules_741023a7c733dbad47a0375bb3f8491a.java:428)
    at com.pegarules.generated.activity.ra_action_pzevaluaterules_741023a7c733dbad47a0375bb3f8491a.perform(ra_action_pzevaluaterules_741023a7c733dbad47a0375bb3f8491a.java:130)
    at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3375)
    at com.pega.pegarules.exec.internal.declare.infengine.pages.DeclarativePageDirectoryImpl.runRule(DeclarativePageDirectoryImpl.java:918)
    at com.pega.pegarules.exec.internal.declare.infengine.pages.DeclarativePageDirectoryImpl.runLoadActivity(DeclarativePageDirectoryImpl.java:440)
    at com.pega.pegarules.session.internal.mgmt.base.handler.ReadOnlyDataPageHandler.loadDataPage(ReadOnlyDataPageHandler.java:235)
    at com.pega.pegarules.session.internal.mgmt.base.handler.ReadOnlyDataPageHandler.findDataPage(ReadOnlyDataPageHandler.java:382)
    at com.pega.pegarules.session.internal.mgmt.base.AbstractPageDirectory.findDataPageInCurrentDir(AbstractPageDirectory.java:893)
    at com.pega.pegarules.session.internal.mgmt.base.AbstractPageDirectory.getDirectPage(AbstractPageDirectory.java:658)
    at com.pega.pegarules.session.internal.mgmt.base.ThreadPageDir.getDirectPage(ThreadPageDir.java:473)
    at com.pega.pegarules.session.internal.mgmt.base.ThreadPageDir.getPage(ThreadPageDir.java:431)
    at com.pega.pegarules.session.internal.mgmt.base.ThreadPageDir.getPage(ThreadPageDir.java:423)
    at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.getPage(PRThreadImpl.java:508)
    at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.getTopPage(PropertyReferenceImpl.java:2192)
    at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.getTopPage(PropertyReferenceImpl.java:2136)
    at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.resolveEmbeddedPages(PropertyReferenceImpl.java:1817)
    at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.doGet(PropertyReferenceImpl.java:1392)
    at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.doGet(PropertyReferenceImpl.java:1372)
    at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.doGet(PropertyReferenceImpl.java:1356)
    at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.get(PropertyReferenceImpl.java:1182)
    at com.pega.pegarules.session.internal.mgmt.Executable.getProperty(Executable.java:2241)
    at com.pegarules.generated.html_section.ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.gridBeginLayout_2(ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.java:379)
    at com.pegarules.generated.html_section.ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.pzLayoutBodyWrapper_2(ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.java:253)
    at com.pegarules.generated.html_section.ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.pzLayout_1(ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.java:714)
    at com.pegarules.generated.html_section.ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.pzSectionBody_1(ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.java:244)
    at com.pegarules.generated.html_section.ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.execute(ra_stream_pzgenerationpreview_9548810b83796779662d325e8f7750cc.java:100)
    at com.pega.pegarules.session.internal.mgmt.Executable.getStream(Executable.java:3908)
    at com.pega.pegarules.session.internal.mgmt.autostreams.AutoStreamRuleRuntime.getSectionStream(AutoStreamRuleRuntime.java:149)



Steps to Reproduce

  1. Run the Create REST Integration wizard.
  2. Use the provided JSON file to create the Request Data Model for the Connect-REST Integration.


Root Cause



A defect in Pegasystems’ code or rules.

Some valid JSON constructs cause issues with older versions of the REST Import wizard.



Resolution



Perform the following local-change:
  1. Remove the array of empty string values from the sample JSON as below:

    {
       "accountNonMonDetailsRequest":{
          "nonMonDetailsRequest":{
             "clientSource":"R",
             "requestAction":"R",
             "requestFunction":"A",
             "requestDetails":{
                "accountNumber":"1234567890",
                "numberOfDays":0,
                "numberOfMonths":0,
                "transactionCodeGroup":{
                   "transactionCode":[
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      "",
                      ""
                   ]
                }
             },
             "pagingDetails":{
                "numberOfRows":"",
                "startRow":"",
                "endRow":"",
                "startKeyGroup":{
                   "startKey":""
                },
                "endKeyGroup":{
                   "endKey":""
                }
             }
          }
       }
    }

     
  2. Run the REST wizard using the updated sample JSON response file.
  3. After generating the data source, manually convert the transactionCode text property to a page list property of type SingleValue-Text.
Alternatively, update to Pega Platform 7.2 or later.

Published September 6, 2019 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us