Skip to main content
February 8, 2021
Solved

How to store values in Write to database to the particular record?

  • February 8, 2021
  • 3 replies
  • 0 views

Hello Everyone, I had a requirement that I had a requirement of transactions like (to transfer amount to one account to another account) I am able to do the transactions in Interface but How can I save that Values to the particular field in another record. Can anyone help me with this? Thanks in ADVANCE

a!localVariables(
  local!result,
  a!formLayout(
    label: "Transaction",
    contents: {
      a!columnsLayout(
        columns: {
          a!columnLayout(
            contents: {
              a!floatingPointField(
                label: "Available Balance",
                labelPosition: if(
                  ri!readOnly,
                  "ADJACENT",
                  "ABOVE"
                ),
                value: ri!COB_Applicant.kycid.transaction.availableBalance, 

                saveInto: ri!COB_Applicant.kycid.transaction.availableBalance,
                readOnly: ri!readOnly,
                disabled: false
              )
            }
          ),
          a!columnLayout(
            contents: {
              a!textField(
                label: "Account Number",
                labelPosition: "ABOVE",
                value: ri!COB_Applicant.accountnumber,
                saveInto: ri!COB_Applicant.accountnumber,
                disabled: true,
                validations: {}
              )
            }
          )
        }
      ),
      a!dropdownField(
        label: "Transaction",
        labelPosition: "ABOVE",
        placeholder: "--- Select a Value ---",
        choiceLabels: {"Send Money", "Add Money"},
        choiceValues: {"Send Money","Add Money"},
        value: ri!COB_Applicant.kycid.transaction.transaction,
        saveInto: ri!COB_Applicant.kycid.transaction.transaction,
        searchDisplay: "AUTO",
        validations: {}
      ),
      a!floatingPointField(
        label: "Add Money",
        labelPosition: "ABOVE",
        value: ri!COB_Applicant.kycid.transaction.credit,
        saveInto: ri!COB_Applicant.kycid.transaction.credit,
        refreshAfter: "UNFOCUS",
        showWhen: if(ri!COB_Applicant.kycid.transaction.transaction="Add Money", true, false),
        validations: {}
      ),
      a!buttonArrayLayout(
        buttons: {
          a!buttonWidget(
            label: "Add",
            value: 
            sum({ri!COB_Applicant.kycid.transaction.availableBalance, ri!COB_Applicant.kycid.transaction.credit}),
            saveInto:ri!COB_Applicant.kycid.transaction.availableBalance,
            submit: true,
            style: "NORMAL",
            showWhen: if(ri!COB_Applicant.kycid.transaction.transaction="Add Money", true, false)
          )
        },
        align: "END"
      ),
      a!floatingPointField(
        label: "Amount to send",
        labelPosition: "ABOVE",
        value: ri!COB_Applicant.kycid.transaction.debit,
        saveInto: ri!COB_Applicant.kycid.transaction.debit,
        refreshAfter: "UNFOCUS",
        showWhen: if(ri!COB_Applicant.kycid.transaction.transaction="Send Money", true, false),
        validations: {}
      ),
      a!dropdownField(
        label: "Dropdown",
        labelPosition: "ABOVE",
        placeholder: "--- Select a Value ---",
        choiceLabels: rule!COB_Applicant_ByAccountNumber2().accountnumber,
        choiceValues: rule!COB_Applicant_ByAccountNumber2().accountnumber,
        value: ri!target,
        saveInto:{
          ri!target,
          a!save(local!result,rule!COB_Applicant_ByAccountNumber(ri!target)) 
        } ,
        searchDisplay: "AUTO",
        validations: {}
      ),
      a!floatingPointField(
        label: "available balance",
        labelPosition: "ABOVE",
        value: ri!targetValue,
        saveInto: a!save(ri!targetValue, sum(result[1].kycid.transaction.availableBalance, ri!COB_Applicant.kycid.transaction.debit)),
        refreshAfter: "UNFOCUS",
        validations: {}
      )
      /*a!sideBySideLayout(*/
        /*items: {*/
          /*a!sideBySideItem(*/
            /*item: a!floatingPointField(*/
              /*label: "Available Balance",*/
              /*labelPosition: "ABOVE",*/
              /*value: */
              /*sum(local!result[1].kycid.transaction.availableBalance, ri!COB_Applicant.kycid.transaction.debit)*/
/**/
/**/
            /*,*/
              /*saveInto: */
              /*a!save(sum(local!result[1].kycid.transaction.availableBalance, ri!COB_Applicant.kycid.transaction.debit),local!result[1].kycid.transaction.availableBalance),*/
              /*refreshAfter: "UNFOCUS",*/
              /*validations: {}*/
            /*)*/
          /*)*/
        /*}*/
      /*)*/
    },
    buttons: a!buttonLayout(
      primaryButtons: {
        a!buttonWidget(
          label: "Submit",
          value: 
          {fixed(sum(ri!COB_Applicant.kycid.transaction.availableBalance)
          )-ri!COB_Applicant.kycid.transaction.debit,
                    
                    
                    
                    sum({local!result[1].kycid.transaction.availableBalance, ri!COB_Applicant.kycid.transaction.debit})

                   






          },
          saveInto: {ri!COB_Applicant.kycid.transaction.availableBalance,
          a!save(ri!targetValue, sum(result[1].kycid.transaction.availableBalance, ri!COB_Applicant.kycid.transaction.debit))
          },
          submit: true,
          style: "PRIMARY"
        )
      },
      secondaryButtons: {
        a!buttonWidget(
          label: "Cancel",
          value: true,
          saveInto: ri!cancel,
          submit: true,
          style: "NORMAL",
          validate: false
        )
      },
      showWhen: if(ri!COB_Applicant.kycid.transaction.transaction="Send Money", true, false)
    )
  )
)

    Best answer by dararaghuveerprasadm0001

    Thankyou Chris, I will execute...

    3 replies

    csteward
    February 8, 2021

    In this case you will want to retrieve the record to update, then write the entire record back with the new value included.  For example:

    a!buttonLayout(
      primaryButtons: {
        a!buttonWidget(
          label: "Update",
          saveInto: {
            a!localVariables(
              local!data: rule!COE_test_getDataById(1),
    
              a!writeToDataStoreEntity(
                dataStoreEntity: cons!COE_DS_TESTING,
                valueToStore: 'type!{urn:com:gdit:types}COE_TESTING'(
                  id: local!data.id,
                  data: "new data"
                )
              )
            )
          }
        )
      }
    )

    February 8, 2021

    Thankyou Chris, I will execute...

    csteward
    February 8, 2021

    Great, please let us know if this works for your requirement.  Also feel free to mark the post as the Answer if this works for you :)