How to update 2 CDT's with each other values in a process model

I am new to Appian. Still learning the basics.

I have two tables

1. Attachments - for adding attachment relate details like fileId,fileName, fileExt, fileSize etc and

2. AttachmentDetails - for description, comments etc

Below is the requirement -

When i upload a document I save them to the attachment table with attachmentDetails primary key (attachmentDetailsId)

After the documents are saved in the attachment table I need to save the attachment tables primary key (attachmentId) to the attachmentDetails table

The problem is i am not sure how to update when there are multiple attachments.

For Example - If i  upload 2 attachments and update attachmentDetails

Attachments Table

attachmentId fileId attachmentDetailsId
1 123 1
2 234 2

 Attachment Details Table

attachmentDetailsId Description attachmentId
1 Evidence 1
2 Tracker 2

I will first save the 2 attachmentDetails (array) to the db first. (at this point attachmentId will be null and I will have the attachmentDetailsId's)

Before saving the attachments to the table i need to map each attachment with attachmentDetailsId. How do i map attachmentDetailsId-1  with first attachment and  attachmentDetailsId-2 with second attachment?

After I map the above I will save them to the attachments table (at this point I will have the attachmentId's)

How do i now map attachmentId-1 to the attachmentDetailsId-1 and How do i now map attachmentId-2 to the attachmentDetailsId-2?

  Discussion posts and replies are publicly visible

Parents
  • Firstly I'd say that you don't need to reference the other table from BOTH tables. You really only need attachmentId in the Attachment Details table. Also, if it's a 1 to 1 relationship I'm not sure you need the extra table in the first place. This does depend on your exact use case but needing a description for an attachment doesn't feel like it needs an extra table (especially if a description is mandatory!). Also consider that a document in Appian can have a description too so you might not even need to save this in the database! Again...this does depend on the specific use case.

    I'd suggest considering:

    1. Can you just save the description into the Appian document object?
    2. Why do you need the extra AttachmentDetails table?
    3. If you need the extra details table then:
      1. You only need to reference the attachmentId from the AttachmentDetails table and not the attachmentDetailsId from the Attachments table
      2. As Stefan said, you can nest CDTs in each other and if your foreign keys are set up correctly then a write to database node will actually take care of your primary and foreign keys
      3. You could save to the attachments table first then iterate using a!forEach() save into the attachmentId column of AttachmentDetails. There's quite a few different ways of doing this depending on the exact set up and it isn't really preferable.
  • Thanks  for the answer. It was designed initially by senior tech leads that attachment table will be a common table for all the projects and attachmentDetails table is specific for my particular project where they want to store additional information for the attachments they are uploading. So unfortunatly I have to save the details as mentioned above.

Reply Children
No Data