Symptom
- While using Condition Based Downpayment, on the output of the Customer Invoice the Downpayment amount is missing
- The Downpayment is recognized and settled but not shown on the Customer Invoice
Environment
SAP S/4HANA Cloud Public Edition All versions
Reproducing the Issue
- Create a Sales Order
- Post a Downpayment to FI
- Create the final Invoice
Cause
Missing functionality.
Resolution
Download the form from the system and do the following changes:
- Add following new fields (I recommend to do that directly in the XML Source view of the Lifecycle designer):
- “txtConditionType” in Subform “Form.bdyMain.frmSummaryInfoTermsConditions.frmRightSide.frmSummaryBlock.frmPricing.frmHiddenAmount”
- “decDownPaymentAmount” in Subform “Form.frmHiddenGlobalFields” -
Bind txtConditionType to $.ConditionType
- Add some Scripting:
- Filter out the ConditionTypes you don’t want to be displayed in the Pricing Table and save the downpayment amount for later use in field decDownPaymentAmount:
Form.bdyMain.frmSummaryInfoTermsConditions.frmRightSide.frmSummaryBlock.frmPricing::initialize - (FormCalc, client)
if (this.frmHiddenAmount.txtConditionType.rawValue == "AZWB")
then
Form.frmHiddenGlobalFields.decDownpaymentAmount.rawValue = this.frmHiddenAmount.decCalculatedAmount.rawValue
this.presence = "hidden"
endif
if (this.frmHiddenAmount.txtConditionType.rawValue == "AZWA")
then
this.presence = "hidden"
endif
- Change the display of the DownPaymentOverviewBlock, to show it also in this scenario (add the new scripting after the existing one at this place!):
Form.bdyMain.frmSummaryInfoTermsConditions.frmRightSide.frmDownPaymentsOverviewBlock::initialize - (FormCalc, client)
if( not Form.frmHiddenGlobalFields.decDownpaymentAmount.rawValue == "" )
then
this.presence = "visible";
endif
- Fill Clearable Down Payment Amount (place the scripting instead of the existing one!)
Form.bdyMain.frmSummaryInfoTermsConditions.frmRightSide.frmDownPaymentsOverviewBlock.frmDownPaymentTotalAmount.txtAmountCurrency::initialize - (FormCalc, client)
this.rawValue = Concat(Form.frmHiddenGlobalFields.decDownpaymentAmount.formattedValue, " " , Form.frmHiddenGlobalFields.txtTransactionCurrency.rawValue )
- Fill Open Total Amount (place the scripting instead of the existing one!)
Form.bdyMain.frmSummaryInfoTermsConditions.frmRightSide.frmDownPaymentsOverviewBlock.frmOpenAmount.txtAmountCurrency::initialize - (FormCalc, client)
this.rawValue = Form.bdyMain.frmSummaryInfoTermsConditions.frmRightSide.frmSummaryBlock.frmGrossAmount.frmHiddenAmount.decCalculatedAmount.rawValue - Form.frmHiddenGlobalFields.decDownpaymentAmount.rawValue
this.rawValue = Concat(this.rawValue, " " , Form.frmHiddenGlobalFields.txtTransactionCurrency.rawValue)
Keywords
Condition Based Downpayment, Output, Downpayment, FI-AR, post, posting, Billing, Form, Layout , KBA , SD-BIL , Billing , SD-BIL-2CL , Billing (Public Cloud) , Problem