Create computed column in view or data entity with Sql statement

 



  public static server str getHasBreakupDetails()

    {

        str expression;

        

        expression = '(select count(bl.RecId) from EMSChargebackBreakupLines bl join EMSChargebackBreakupHeader bh on bl.BreakupHeaderRecId = bh.RecId and bh.ChargebackRecId = ' +

            SysComputedColumn::returnField(tableStr(SAKChargebacksInquiryView),identifierStr(SAKChargebacks),fieldStr(SAKChargebacks,RecId)) + ')';

// If condition & literal with numbers 

        return SysComputedColumn::if(

            SysComputedColumn::equalExpression(

            expression,

            SysComputedColumn::comparisonLiteral(0)), SysComputedColumn::returnLiteral(0), SysComputedColumn::returnLiteral(1));


    }


Other examples


public static server str getCBNum(TableName _viewName,

        str _DataSourceParty,

        str _DataSourcePartyField)

    {

        str expression;

        expression = 'select displayvalue from dimensionattributevaluecombination where recid = ' +

            SysComputedColumn::returnField(_viewName,

            _DataSourceParty,

            _DataSourcePartyField);


        return expression;

    }



with real computed column

    public static str  getPendingAllocationQty()

    {

        #SRSModel


        str contractLineRecIdValue =

        SysComputedColumn::returnField(tableStr(NXRExistingContractLineView),identifierStr(EDF_ContractLine),fieldStr(EDF_ContractLine,RecId));


        str contractQty = SysComputedColumn::returnField(tableStr(NXRExistingContractLineView),identifierStr(EDF_ContractLine),fieldStr(EDF_ContractLine,ContractQty));


        str expression = '(select sum(ContractQty) from NXRMASTERWEIGHINGPURCHALLOCATIONTABLE where  NXRMASTERWEIGHINGPURCHALLOCATIONTABLE.ProcessStatus <> 3  and '+

     'exists( select * from NXRMasterWeighingTable  where NXRMasterWeighingTable.BFSIndependentWeighID = NXRMASTERWEIGHINGPURCHALLOCATIONTABLE.BFSIndependentWeighID '+

     'and  NXRMasterWeighingTable.Status <> 7) and NXRMASTERWEIGHINGPURCHALLOCATIONTABLE.EDF_ContractLine = ' +


            contractLineRecIdValue + ')';


        expression = SysComputedColumn::if(SysComputedColumn::isNullExpression(expression),SysComputedColumn::returnLiteral(0.00),expression);


        return SysComputedColumn::cast( SysComputedColumn::subtract(contractQty, expression), #smFloat);


    }

Comments

Popular posts from this blog

Ledger dimensions and financial Dimensions X++

Logistics address, postal address, address phone fax contact information

Consume odata/web api d365fo and parsing json content