How to use conditional basis entity data in write to multiple data store entity

I have two process variable that is CDT type.

I need to if any of the process variable is null then related to that process variable entity data not executed.

Like this: 

= {  

 if(    a!isnotnullorempty(pv!dependencies),   

         null,   

a!entityData(   

         entity: cons!DSE_COMMUNITIES, 

        data: pv!communityAllocation  )

),

    if(    a!isnotnullorempty(pv!dependencies),   

         null,   

       a!entityData(     

         entity: cons!DSE_DEPENDENCIES,     

         data: pv!dependencies    )  )}

But it gives error:

An error occurred while trying to write to the data store [Tables]. No values have been written. Details: org.hibernate.PropertyValueException: not-null property references a null or transient value DependenciesDT21866.projectid (APNX-1-4208-004)

Please, anyone suggest........

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    If you don't have anything to write for a particular Entity entry, you will need to set that list item to EMPTY SET ( {} ), because NULL() actually carries a value and will cause the node to error.

    This makes some assumptions into the validity of your null checks.  The second null check (for pv!dependencies) seemed backwards so I switched to the opposite rule (since you wouldn't be writing pv!dependencies if it's actually empty).

    {
      if(
        a!isNotNullOrEmpty(pv!dependencies),
        {},  /* null, */
        a!entityData(
          entity: cons!DSE_COMMUNITIES,
          data: pv!communityAllocation
        )
      ),
      if(
        a!isNullOrEmpty(pv!dependencies),  /* note, switching the null check rule used here */
        {},    /* null, */
        a!entityData(
          entity: cons!DSE_DEPENDENCIES,
          data: pv!dependencies
        )
      )
    }

  • Thanks for reply.

    By putting empty set with your code, it still gives same error as above..

Reply Children