Hello Andre,
As per your suggestion i have used SpectranManager class.please have a look following code and your opinion on this.
Public Static void Isys_Payment()
{
//--------------------
DimensionStorage dimensionStorage;
DimensionAttribute deparmentDimensionAttribute;
DimensionAttributeValue newDepartmentValue;
Ledger Led;
DimensionAttributeValueSetStorage valueset;
DimensionDefault res;
int i;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
container conatrr;
container conval;
str dimvalue;
CustTable cust;
SpecTrans insertSpecTrans;
SpecTransManager insertSpecTrans1;
//--------------------
AxLedgerJournalTable journalTable;
AxLedgerJournalTrans journalTrans;
container acctPattern;
container acctPattern1;
container offSetAcctPattern;
DataAreaId areaid="USMF";
LedgerJournalTable ledgerJournalTable;
ledgerJournalCheckPost ledgerJournalCheckPost;
LedgerDimensionAccount ledgerDim;
DimensionAttributeValueSetStorage dimstorage;
DimensionDefault D;
DimensionDefault df;
DimensionValueService ser;
DimensionValueContract s1;
Counter retryCount;
CustInvoiceJour custInvoicejour;
#define.RMax(5)
;
journalTable = new AxLedgerJournalTable();
journalTrans = new AxLedgerJournalTrans();
//Journal Name
journalTable.parmJournalType(LedgerJournalType::Payment);
journalTable.parmJournalName("SLSPAY");
journalTable.save();
journalTrans.parmJournalNum(journalTable.ledgerJournalTable().JournalNum);
journalTrans.parmTransDate(systemDateGet());
journalTrans.parmCurrencyCode("USD");
//journalTrans.parmAmountCurDebit(200);
journalTrans.parmAccountType(LedgerJournalACType::Cust);
journalTrans.parmLedgerDimension(DimensionStorage::getDynamicAccount("US-027",LedgerJournalACType::Cust));
journalTrans.parmMarkedInvoice("*");
//------------------------------------------------------
conatrr=["BusinessUnit","CostCenter","Department","ItemGroup"];
conval=["001","010","022","Audio"];
valueset=new DimensionAttributeValueSetStorage();
for (i=1;i<=conLen(conatrr);i++)
{
dimensionAttribute=dimensionAttribute::findByName(conPeek(conatrr,i));
if(dimensionAttribute.RecId==0)
{
continue;
}
dimvalue=conPeek(conval,i);
if(dimvalue!="")
{
dimensionAttributeValue =dimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,dimvalue,false,true);
valueset.addItem(dimensionAttributeValue);
}
res=valueset.save();
journalTrans.parmDefaultDimension(res);
}
insertSpecTrans1=SpecTransManager::construct(insertSpecTrans);
insertSpecTrans1.insertLine("USMF",tableNum(LedgerJournalTrans),CustTransOpen::findRefId(custInvoicejour.custTrans).RecId).RecId,insertSpecTrans.SpecRecId,CustTransOpenLine::findByRefId(custInvoicejour.custTrans().RecId).RecId,220);
journalTrans.save();
info(strFmt("Payment No. %1.", journalTable.ledgerJournalTable().JournalNum));
}