Execute sql functions

Hi All,

How can be execute sql server table valued functions from appian ? Are there any plug-ins available for the same ?

Thanks and regards,

Ishani Joshi

  Discussion posts and replies are publicly visible

Parents Reply
  • 0
    Certified Lead Developer
    in reply to cindyv0001

    I am not sure you are addressing this in the best way. It sounds like you have a one to many situation and I am not sure any of this has been written to the DB yet.
    You may want to look at your UI and your CDTs for the parent and child. If you write the parent first, you will get the PK that can then be used as a FK for the child (this is just one of many approaches) and then the nextval is not needed.

    There may be some tutorials for building grids, etc. that might help..

Children
  • I would like to write an expression rule to call SELECT SEQ.NEXTVAL SEQ FROM DUAL and return the GUID before launch the process model to save the data. What Appian function can i use to call the SQL statement you suggested that calls SELECT SEQ.NEXTVAL SEQ FROM DUAL as an inner select?

  • In other word, is there an Appian function that can execute raw SQL statements?

  • I agree with Christine, this should be handled natively in Appian without writing your own SQL statement. And even if you get the SQL to work, you could have other issues too - what would happen if you have two people submit at the same time? You may not be guaranteed to get the next value in the sequence.

    If your concern is that you need to make sure each address is associated with the correct contact, there's plenty of other ways to do that:

    • Create another CDT which stores the index of the parent and child on clicking the submit button. For example, you could have a CDT (that doesn't actually have an associated table) that just stores the contact index and the address index. Then, use two separate writes: one to the contact table and one to the address table. Since you have kept the list of both indexes, you should be able to associate the correct contact ID to the address as a foreign key.
    • Use nested CDTs. These can get complex, but this is one of the main use cases for using nested CDTs. If you have address nested inside of contact, it's now easy to understand which addresses are associated with each contact.
  • Is there an example or more documents about nested CDTs on Appian website? Would you share the link? I'd like to learn how nested CDTs work. thx. 

  • Would you share an example to "Create another CDT which stores the index of the parent and child on clicking the submit button. For example, you could have a CDT (that doesn't actually have an associated table) that just stores the contact index and the address index. Then, use two separate writes: one to the contact table and one to the address table. Since you have kept the list of both indexes, you should be able to associate the correct contact ID to the address as a foreign key"?

  • Here's information on nested CDTs: https://docs.appian.com/suite/help/latest/cdt_design_guidance.html#nested-cdts

    For the second example, it will depend a lot on how your interface is set up. How are you currently associating each contact with the appropriate address? Can you share the expression for your interface?

    Generally though, you would create a new CDT with just two fields: contactIndex and addressIndex. Then, on submitting your form, you would set up key value pairs to associate each address with the appropriate contact. Then, your data in this CDT might end up something like this:

    • contactIndex: 1, addressIndex: 1
    • contactIndex: 1, addressIndex: 2
    • contactIndex: 2:, addressIndex: 3