The record data does not exist, has been deleted, or you do not have sufficient privileges to access it. (APNX-1-4205-006) in service backed record

Hi All, I am working on a use case, where I have configured record with integartion(service backed recordrd type) using a dynamic link in a grid to redirect to summary page,

I am getting "The record data does not exist, has been deleted, or you do not have sufficient privileges to access it. (APNX-1-4205-006)" this error while clicking the link to see summary .

Can any one please help me what configuration needs to be established to see summary page.

.

a!localVariables(
  /* 1. First, configure the integration object to return successfully */
  local!integrationResponse: rule!GI_INT_GetClaim(adjustername: "ABC"),
  todatasubset(
    a!forEach(
      local!integrationResponse.result.body.claimsList,
      cast(
        typeof(
          'type!{urn:com:appian:types:GI}GI_RESP_GetClaimSummaryClaimList'()
        ),
        fv!item
      )
    )
  )
  
)

I am getting this output.

Am able to see the data in the grid but not able to view summary. Help me to resolve the issue.Thanks in advance.

It works for single record source configuration but with this only one record display and able to see summary also.

  Discussion posts and replies are publicly visible

  • 0
    Certified Lead Developer

    First, I need to ask a few questions.

    What do you mean with "a dynamic link in a grid to redirect to summary page"? A dynamic link does not do that.

    Do you see valid data in the Records Designer in the data model preview and also in the Records List designer?

    Are the permissions on the record type set up correctly?

    Then, your code can be simplified a lot. There is no need for a foreach.

    a!forEach(
          local!integrationResponse.result.body.claimsList,
          cast(
            typeof(
              'type!{urn:com:appian:types:GI}GI_RESP_GetClaimSummaryClaimList'()
            ),
            fv!item
          )
        )
    
    
    cast(
      a!listType('type!{urn:com:appian:types:GI}GI_RESP_GetClaimSummaryClaimList'),
      local!integrationResponse.result.body.claimsList
    )

  • Hi Stefan Helzle,


    Yes checked all the permission looks good for me.

    Sorry it is not dynamic link its record link in the grid.

    I can see valid data in the grid. Let me check with this code.

    Thank you.

  • 0
    Certified Senior Developer

    As Stefan suggested you can remove a! for each from your code.

    Another issue that you need to fix is the pagination as your API needs to accept records per page and page number.


    a!localVariables(
      /* Call the integration and store the response in a local variable */
      local!integrationResponse: rule!GI_INT_GetClaim(adjustername: "ABC"),
      if(
        /* This will return true if the integration succeeds */
        local!integrationResponse.success,
        /* If needed, modify the expression below to return a list of maps, dictionaries, or CDTs that map to your record data */
        /*Without casting*/
        index(
          local!integrationResponse.result.body,
          "claimsList",
          null
        ),
        /*In case you want to cast to cdt below code*/
        /*
        cast(
            typeof('type!{urn:com:appian:types:GI}GI_RESP_GetClaimSummaryClaimList'()),
            {
                index(
                    local!integrationResponse.result.body,
                    "claimsList",
                    null
                )
            }
        )
        */
        /* If the integration is unsuccessful, handle accordingly */
        if(
          /* Note: handling of out of bounds exceptions varies by web service */
          tointeger(
            index(
              local!integrationResponse.result,
              "statusCode",
              0
            )
          ) = 416,
          /* If this is an out of bounds error, return an empty list to finish syncing */
          {},
          /* If this is a different error, return the integration error. */
          /* If you need additional logic to determine the error, use a!integrationError() in the integration to format the error displayed in the sync monitor */
          local!integrationResponse.error
        )
      )
    )



    For summary view go to Views and header section in the record then you have three tabs 

    try to use GENERATE RECORD VIEW in this you will follow the wizard which will do the automatic creation of view and then you can customize the interface according to your need.

    if you already have created the interface then you can map it manually as well using ADD VIEW MANUALLY.

    Note either pass rv!record or  rv!identifier in the summary view interface

    Hope this helps