Monday, December 11, 2017

Exportfile for AOT version 1.0 or later
Formatversion: 1

***Element: CLS

; Microsoft Dynamics AX Class: AKACOAExportToHyperion unloaded
; --------------------------------------------------------------------------------
  CLSVERSION 1
 
  CLASS #AKACOAExportToHyperion
    Id 51542
    PROPERTIES
      Name                #AKACOAExportToHyperion
      Extends             #RunBaseBatch
      RunOn               #Called from
    ENDPROPERTIES
   
    METHODS
      Version: 3
      SOURCE #caption
        #public ClassDescription caption()
        #{
        #    return "@AKA64";
        #}
      ENDSOURCE
      SOURCE #classDeclaration
        #abstract class AKACOAExportToHyperion extends RunBaseBatch
        #{
        #
        #    FilenameSave    fileName;
        #    FromDate        fromDate;
        #    ToDate          toDate;
        #
        #
        #    DialogField     dialogFilename;
        #    DialogField     dialogFromDate;
        #    DialogField     dialogToDate;
        #
        #    FilenameFilter  filenameFilter;
        #
        #    CommaIo         commaIO;
        #
        #    RunbaseProgress importProgress;
        #
        #    Counter         lineCounter;
        #
        #    SysQueryRun     queryrun;
        #    Query           query;
        #
        #    LedgerTrans     ledgerTrans;
        #    LedgerTable     ledgerTable;
        #
        #
        #
        #    #AviFiles
        #    #File
        #    #DEFINE.CurrentVersion(2)
        #    #LOCALMACRO.CurrentList
        #        filename,
        #        fromDate,
        #        toDate
        #    #ENDMACRO
        #
        #    }
      ENDSOURCE
      SOURCE #constructProgress
        #//to show the Progressbar
        #public RunBaseProgress constructProgress()
        #{
        #    importProgress = RunbaseProgress::construct(this.numOfProgressBars());
        #    importProgress.setAnimation(#AviTransfer);
        #    importProgress.setCaption((strfmt("@SYS79623",fileName)));
        #    return importProgress;
        #}
      ENDSOURCE
      SOURCE #dialog
        #protected Object dialog()
        #{
        #    DialogRunBase   dialog;
        #    Container       filterCriteria;
        #    ;
        #
        #    dialog = super();
        #
        #    dialog.addGroup("@SYS14598");
        #    dialogFromDate = dialog.addFieldValue(typeid(FromDate),fromDate);
        #    dialogToDate = dialog.addFieldValue(typeid(ToDate),toDate);
        #
        #    dialog.addGroup("@SYS65209");
        #    filterCriteria = ["@SYS39829",'*.csv'];
        #
        #    dialogFilename = dialog.addFieldValue(typeid(FilenameSave),fileName);
        #    filenameFilter = dialog.filenameLookupFilter(filterCriteria);
        #
        #
        #
        #
        #    return dialog;
        #}
      ENDSOURCE
      SOURCE #field2Container
        #protected  container field2Container()
        #{
        #
        #    return  [LedgerTable.dataAreaId,
        #            ledgerTrans.Dimension[1],
        #            LedgerTable.AccountNum,
        #            SystemDateGet(),
        #            ledgerTrans.Dimension[2],
        #            ledgerTrans.Dimension[3],
        #            ledgerTrans.AmountMST];
        #
        #
        #}
      ENDSOURCE
      SOURCE #filename
        #public FilenameSave filename(FileNameSave _fileName)
        #{
        #    ;
        #    fileName = _fileName;
        #
        #    return filename;
        #}
      ENDSOURCE
      SOURCE #getFromDialog
        #public boolean getFromDialog()
        #{
        #    boolean ret;
        #
        #    ret = super();
        #
        #    fileName = dialogFilename.value();
        #    fromDate = dialogFromDate.value();
        #    toDate   = dialogToDate.value();
        #
        #
        #    return ret;
        #}
      ENDSOURCE
      SOURCE #getHeader
        #public container getHeader()
        #{
        #    #define.Entity('Entity')
        #    #define.Product('Product')
        #    #define.Date('Date')
        #    #define.GLAccount('GL Account')
        #    #define.Region('Region')
        #    #define.Project('Project')
        #    #define.Amount('Amount')
        #    container   ret;
        #    int         counter;
        #
        #    void addField(str _header)
        #    {
        #        ;
        #        counter++;
        #        ret = conins(ret, conlen(ret) + 1, _header);
        #    }
        #    ;
        #    counter = 0;
        #    ret     = connull();
        #
        #    addField(#Entity);
        #    addField(#Product);
        #    addField(#Date);
        #    addField(#GLAccount);
        #    addField(#Region);
        #    addField(#Project);
        #    addField(#Amount);
        #
        #
        #    return ret;
        #}
      ENDSOURCE
      SOURCE #getLast
        #public void getLast()
        #{
        #    super();
        #
        #    if (!WinAPI::showMruAllowed())
        #    {
        #            fileName = '';
        #    }
        #}
      ENDSOURCE
      SOURCE #initializeFile
        #// Permissions needed:
        #//      FileIOPermission('fileName','w')
        #public void initializeFile()
        #{
        #    #define.writeMode('W')
        #
        #    FileIOPermission permission;
        #    ;
        #
        #    permission = new FileIOPermission(filename, #writeMode);
        #    permission.assert();
        #
        #    // BP deviation documented
        #    commaIO = new CommaIO(fileName,#writeMode);
        #
        #    if (!commaIO)
        #        throw error("@SYS26757" + "@DTE2357");
        #
        #    CodeAccessPermission::revertAssert();
        #}
      ENDSOURCE
      SOURCE #initParmDefault
        #public void initParmDefault()
        #{
        #    this.initQuery();
        #
        #    super();
        #}
      ENDSOURCE
      SOURCE #initQuery
        #public void initQuery()
        #{
        #
        #    QueryBuildDataSource    qBds1;
        #    QueryBuildDataSource    qBds2;
        #    ;
        #
        #    query = new Query();
        #    qBds1 = query.addDataSource(tablenum(LedgerTrans));
        #    qBds1.addRange(fieldnum(LedgerTrans, TransDate)).value(SysQuery::range(fromDate, ToDate));
        #    // Don't count system generated ultimo transactions
        #    qBds1.addRange(FieldId2Ext(fieldnum(LedgerTrans, Dimension),1));
        #   // qBds1.addRange(FieldId2Ext(fieldnum(LedgerTrans, Dimension),3));
        # //   qBds1.addRange(FieldId2Ext(fieldnum(LedgerTrans, Dimension),4));
        #    qBds1.orderMode(OrderMode::GroupBy);
        #
        #    qBds2 = qBds1.addDataSource(tablenum(LedgerTable));
        #    qBds2.addRange(fieldnum(LedgerTable, AccountPlType)).value(enum2Str(LedgerAccountType::AccountOperations));
        #    qBds2.addLink(fieldnum(LedgerTrans, AccountNum), fieldnum(LedgerTable, AccountNum));
        #  //  qBds2.fetchMode(QueryFetchMode::One2One);
        #    qBds2.joinMode(JoinMode::InnerJoin);
        #
        #    qBds1.addSelectionField(fieldnum(LedgerTrans, AmountMST), SelectionField::Sum);
        #   // qBds1.addSelectionField(fieldnum(LedgerTrans, AmountCur), SelectionField::Sum);
        #    //qBds1.addSelectionField(fieldnum(LedgerTrans, AmountMSTSecond), SelectionField::Sum);
        #    //qBds1.addSelectionField(fieldnum(LedgerTrans, Qty), SelectionField::Sum);
        #
        #    qBds1.addSortField(fieldnum(LedgerTrans, AccountNum));
        #   query.allowCrossCompany(True);
        #   // qBds1.addSortField(fieldnum(LedgerTrans, OperationsTax));
        #    //qBds1.addSortField(fieldnum(LedgerTrans, CurrencyCode));
        #    //qBds1.addSortField(fieldnum(LedgerTrans, euroTriangulation));
        #    queryRun = new SysQueryRun(query);
        #
        #}
      ENDSOURCE
      SOURCE #lineCounter
        #public Counter lineCounter(Counter _lineCounter = lineCounter)
        #{
        #    lineCounter = _lineCounter;
        #
        #    return lineCounter;
        #}
        #
      ENDSOURCE
      SOURCE #numOfProgressBars
        #public int numOfProgressBars()
        #{
        #    return 1;
        #}
      ENDSOURCE
      SOURCE #pack
        #public container pack()
        #{
        #    ;
        #    return [#CurrentVersion,#CurrentList];
        #}
      ENDSOURCE
      SOURCE #queryRun
        #public QueryRun queryRun()
        #{
        #    return queryRun;
        #}
      ENDSOURCE
      SOURCE #recordCounter
        #public Counter recordCounter()
        #{
        #    return SysQuery::countTotal(queryRun);
        #}
      ENDSOURCE
      SOURCE #run
        #public void run()
        #{
        #    if (! this.validate())
        #        throw error("@DTE2365");
        #    try
        #    {
        #        ttsbegin;
        #        this.initQuery();
        #        this.writeTable2File();
        #
        #        ttscommit;
        #    }
        #    catch (Exception::Deadlock)
        #    {
        #        retry;
        #    }
        #}
        #
      ENDSOURCE
      SOURCE #showQueryValues
        #public boolean showQueryValues()
        #{
        #    return  true;
        #}
      ENDSOURCE
      SOURCE #unpack
        #public boolean unpack(container packedClass)
        #{
        #      Version version = runbase::getVersion(packedClass);
        #     container   queryCon;
        #    ;
        #        switch (version)
        #        {
        #            case #CurrentVersion:
        #                [version,#CurrentList ] = packedClass;
        #
        #             break;
        #            default:
        #                return false;
        #        }
        #
        #        return true;
        #
        #    }
        #
        #
      ENDSOURCE
      SOURCE #validate
        #public boolean validate()
        #{
        #    boolean ret = true;
        #    Container  checkType;
        #
        #    if (! filename)
        #    {
        #        ret = checkFailed("@SYS18624");
        #    }
        #
        #    checkType =  Docu::splitFilename(filename);
        #
        #    if(Conpeek(checkType,2) != 'csv')
        #    {
        #        ret = checkFailed("@SYS18624");
        #    }
        #
        #    if(!LedgerPeriod::existEndDate(toDate))
        #    {
        #        ret =  checkFailed("@SYS18624");
        #    }
        #
        #    if(!LedgerPeriod::existDate(fromDate))
        #    {
        #        ret =  checkFailed("@SYS18624");
        #    }
        #    return ret;
        #}
      ENDSOURCE
      SOURCE #writeTable2File
        #public void writeTable2File()
        #{
        #
        #    int     noOfRecords;
        #    SysOperationProgress    sysOperationProgress = new SysOperationProgress(1);
        #
        #    #AviFiles
        #    Container c = ['cec','CEE', 'CEU','FB', 'CHU']
        #    ;
        #
        #
        #    startLengthyOperation();
        #    setprefix("@DTE2355");
        #    sysOperationProgress.setAnimation(#AviTransfer);
        #    sysOperationProgress.setCaption(this.caption());
        #    sysOperationProgress.setTotal( SysQuery::countTotal(queryRun));
        #
        #    noOfRecords = 0;
        #
        #    commaIO.writeExp(this.getHeader());
        #
        #     While select crossCompany:c ledgerTable
        #         where  ledgerTable.AccountPlType == LedgerAccountType::AccountOperations
        #
        #     {
        #
        #          changecompany(ledgerTable.dataAreaId)
        #          {
        #           while select crossCompany:c sum(amountMst),dimension[1], dimension[2], dimension[3] from ledgerTrans
        #             group by accountNum, dimension[1], dimension[2], dimension[3]
        #                where ledgerTrans.TransDate >= fromDate
        #                   && ledgerTrans.TransDate <= toDate
        #                   && ledgerTrans.AccountNum== ledgerTable.AccountNum
        #{
        #      //}
        #
        #    //while(queryRun.next())
        #   // {
        #
        #      //  {
        #  //      ledgerTrans = queryRun.getNo(1);
        #        commaIO.writeExp(this.field2Container());
        #        sysOperationProgress.setText(strfmt("@DTE2353",tableid2pname(tableNum(InventTable)),fileName));
        #        sysOperationProgress.setCount(noOfRecords);
        #        noOfRecords++;
        #        setprefix(tableid2pname(tableNum(LedgerTrans)));
        #        }
        #        }
        #        }
        #
        #    endLengthyOperation();
        #    info(strfmt("@DTE2354", noOfRecords, filename));
        #
        #}
      ENDSOURCE
      SOURCE #construct
        #public Static Object construct(ClassId classId)
        #{
        #    DictClass           dictClass;
        #    Object              action;
        #    ;
        #
        #    if (! classId)
        #    {
        #        throw error(strFmt("@SYS59121"));
        #    }
        #
        #
        #    dictClass       = new DictClass(classId);
        #    action          = dictClass.makeObject();
        #
        #    return action;
        #}
      ENDSOURCE
      SOURCE #description
        #// Here goes a description of the class
        #public static ClassDescription description()
        #{
        #    throw error(Error::missingOverload(funcname()));
        #}
      ENDSOURCE
      SOURCE #main
        #static void main(Args args)
        #{
        #    AKACOAExportToHyperion        exportToHyperion  ;
        #;
        #    exportToHyperion =  AKACOAExportToHyperion::construct(classIdget(exportToHyperion));
        #
        #    if (exportToHyperion.prompt())
        #    {
        #        exportToHyperion.initializeFile();
        #        exportToHyperion.run();
        #    }
        #
        #
        #}
        #
      ENDSOURCE
    ENDMETHODS
  ENDCLASS

***Element: END

Monday, December 4, 2017

findim

tatic void DEV_CreateDefaultDimension(Args _args)
{
    DimensionAttributeValueSetStorage   valueSetStorage = new DimensionAttributeValueSetStorage();
    DimensionDefault                    result;   
   
    int                     i;
    DimensionAttribute      dimensionAttribute;
    DimensionAttributeValue dimensionAttributeValue;
   
    // Note that "Item" is not one of the default dimension,
    // but DimensionAttributeValueSetStorage will handle it gracefully
    container               conAttr = ["Department", "ExpensePurpose", "Item"];
    container               conValue = ["00000028", "Training", "1000"];   
    str                     dimValue;             
   
    for (i = 1; i <= conLen(conAttr); i++)
    {               
        dimensionAttribute = dimensionAttribute::findByName(conPeek(conAttr,i));
       
        if (dimensionAttribute.RecId == 0)
        {
            continue;
        }
       
        dimValue = conPeek(conValue,i);
       
        if (dimValue != "")
        {
            // The last parameter is "true". A dimensionAttributeValue record will be created if not found.
            dimensionAttributeValue =
                    dimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,dimValue,false,true);
           
            // Add the dimensionAttibuteValue to the default dimension
            valueSetStorage.addItem(dimensionAttributeValue);
        }               
    }       
   
    result = valueSetStorage.save();   
}

Friday, October 6, 2017

static void Job171(Args _args)
{
    InventTable inventTable = InventTable::find("Vouch312");
    InventTable InventTableTemplate = InventTable::find("Vouch310");
 
 
 
    inventItemPurchSetup inventItemPurchSetup , newinventItemPurchSetup;
    newinventItemPurchSetup = InventTable.inventItemPurchSetup();
    inventItemPurchSetup = InventTableTemplate.inventItemPurchSetup();
 
    newinventItemPurchSetup.selectForUpdate(true);
    newinventItemPurchSetup.InventDimId =  inventItemPurchSetup.InventDimId;
    newinventItemPurchSetup.InventDimIdDefault = inventItemPurchSetup.InventDimIdDefault;
    newinventItemPurchSetup.HighestQty =   inventItemPurchSetup.HighestQty;
    newinventItemPurchSetup.MultipleQty =  inventItemPurchSetup.MultipleQty ;
    newinventItemPurchSetup.LowestQty =  inventItemPurchSetup.LowestQty ;
    newinventItemPurchSetup.LeadTime =  inventItemPurchSetup.LeadTime ;
    newinventItemPurchSetup.write();

 
 static void createProdFromTemp(Args _args)
{
        SysRecordTmpTemplate    sysRecordTmpTemplate;
    SysRecordTemplate       recordTemplate;
    DirParty                dirParty;
    TEDDMFParametersExt     tedDMFParametersExt = TEDDMFParametersExt::find();
    container               dataContainer,RecordTmplateData;
    int                     i;
    EcoResProduct           ecoResProduct;
    InventTable             inventTable;

 
        EcoResProductTemplateApplyManagerUtils utils;
        delete_from inventTable WHERE inventTable.ItemId == "Vouch312";
 
    //if (releaseProductToCompany && sysRecordTmpTemplate.Data)
    //{
        //inventTable = InventTable::findByProduct(ecoResProduct.RecId);
//
        //utils = EcoResProductTemplateApplyManagerUtils::newDefault();
        //utils.applyTemplate(
            //sysRecordTmpTemplate.Data,
            //inventTable.ItemId);
    //}

 select firstOnly ecoResProduct where EcoResProduct.DisplayProductNumber == "Vouch312"; //Audio system
//
        //EcoResProductReleaseManager::releaseProductWithLegalEntityData(
            //ecoResProduct.RecId,
            //CompanyInfo::findDataArea(curext()).RecId,
            //"Vouch",
            //"Vouch");
 
    EcoResProductReleaseManagerBase::releaseProduct(ecoResProduct.RecId,
CompanyInfo::findDataArea('TBUK').RecId);
 
 
    if(ecoResProduct)
    {
            dataContainer = SysRecordTemplateTable::find(tableNum(InventTable)).Data;

            for (i = conlen(dataContainer); i; i--)
            {
                [sysRecordTmpTemplate.Description, sysRecordTmpTemplate.DefaultRecord, sysRecordTmpTemplate.Data, sysRecordTmpTemplate.Details] = conpeek(dataContainer, i);
                if(sysRecordTmpTemplate.Description == "100074")
                {
                    sysRecordTmpTemplate.OrgDescription = sysRecordTmpTemplate.Description;
                    sysRecordTmpTemplate.insert();
                    RecordTmplateData = sysRecordTmpTemplate.data;
           
                 
                    inventTable = InventTable::findByProduct(ecoResProduct.RecId);

                    utils = EcoResProductTemplateApplyManagerUtils::newDefault();
                    utils.applyTemplate(
                        RecordTmplateData,
                        inventTable.ItemId);
                          break;
                }
            }
            //recordTemplate = SysRecordTemplate::construct();
            //recordTemplate.parmForceCompanyTemplate("Test");
            //recordTemplate.parmCommon(inventTable);
            //recordTemplate.parmRecordTemplateValues(RecordTmplateData);
            //recordTemplate.createRecord();
            //inventTable.ItemId = ecoResProduct.productNumber();
            //inventTable.insert();
        }


}
static void Job171(Args _args)
{
    InventTable inventTable = InventTable::find("Vouch311");
    InventTable InventTableTemplate = InventTable::find("Vouch310");
 
    inventItemPurchSetup    inventItemPurchSetup ,
                            newinventItemPurchSetup;
    InventItemInventSetup   inventItemInventSetup,
                            newInventItemInventSetup;
    InventItemSalesSetup    inventItemSalesSetup,
                            newInventItemSalesSetup;
    ttsBegin;
 
   //  newinventItemInventSetup = InventTable.inventItemInventSetup();
    //inventItemInventSetup = InventTableTemplate.inventItemInventSetup();
 
    while select inventItemInventSetup
            where inventItemInventSetup.ItemId == "Vouch310"
    {
        newinventItemInventSetup.clear();
        newinventItemInventSetup = InventItemInventSetup::find(inventTable.ItemId,
                                                              inventItemInventSetup.InventDimId,               
                                                              true);
        newinventItemInventSetup.InventDimId =  inventItemInventSetup.InventDimId;
        newinventItemInventSetup.InventDimIdDefault = inventItemInventSetup.InventDimIdDefault;
        newinventItemInventSetup.HighestQty =   inventItemInventSetup.HighestQty;
        newinventItemInventSetup.MultipleQty =  inventItemInventSetup.MultipleQty ;
        newinventItemInventSetup.LowestQty =  inventItemInventSetup.LowestQty ;
        newinventItemInventSetup.LeadTime =  inventItemInventSetup.LeadTime ;
        newinventItemInventSetup.ItemId   = inventTable.ItemId;
        newinventItemInventSetup.write();
    }

 
 
   // newinventItemPurchSetup = InventTable.inventItemPurchSetup();
   // inventItemPurchSetup = InventTableTemplate.inventItemPurchSetup();
 
     
    while select inventItemPurchSetup
            where inventItemPurchSetup.ItemId == "Vouch310"
    {
        newinventItemPurchSetup.clear();
       newinventItemPurchSetup = inventItemPurchSetup::find(inventTable.ItemId,
                                                              inventItemPurchSetup.InventDimId,               
                                                              true);
         newinventItemPurchSetup.ItemId   = inventTable.ItemId;
        newinventItemPurchSetup.InventDimId =  inventItemPurchSetup.InventDimId;
        newinventItemPurchSetup.InventDimIdDefault = inventItemPurchSetup.InventDimIdDefault;
        newinventItemPurchSetup.HighestQty =   inventItemPurchSetup.HighestQty;
        newinventItemPurchSetup.MultipleQty =  inventItemPurchSetup.MultipleQty ;
        newinventItemPurchSetup.LowestQty =  inventItemPurchSetup.LowestQty ;
        newinventItemPurchSetup.LeadTime =  inventItemPurchSetup.LeadTime ;
        newinventItemPurchSetup.write();
    }
    //newinventItemSalesSetup = InventTable.inventItemSalesSetup();
  //  inventItemSalesSetup = InventTableTemplate.inventItemSalesSetup();
 
        while select inventItemSalesSetup
            where inventItemSalesSetup.ItemId == "Vouch310"
    {
    newinventItemSalesSetup.clear();
         newinventItemSalesSetup = InventItemSalesSetup::find(inventTable.ItemId,
                                                              inventItemSalesSetup.InventDimId,               
                                                              true);
          newinventItemSalesSetup.ItemId   = inventTable.ItemId;
    newinventItemSalesSetup.InventDimId =  inventItemSalesSetup.InventDimId;
    newinventItemSalesSetup.InventDimIdDefault = inventItemSalesSetup.InventDimIdDefault;
    newinventItemSalesSetup.HighestQty =   inventItemSalesSetup.HighestQty;
    newinventItemSalesSetup.MultipleQty =  inventItemSalesSetup.MultipleQty ;
    newinventItemSalesSetup.LowestQty =  inventItemSalesSetup.LowestQty ;
    newinventItemSalesSetup.LeadTime =  inventItemSalesSetup.LeadTime ;
    newinventItemSalesSetup.write();
    }

    ttsCommit;
}
/// <summary>
/// Method to create a record in the <c>PriceDiscAdmTrans</c> table
/// </summary>
/// <param name="_fromPriceDiscAdmTrans">
/// <c> PriceDiscAdmTrans </c>
/// </param>
/// <param name="_toPriceDiscAdmTrans">
/// <c> PriceDiscAdmTrans </c>
/// </param>
/// <param name="_journalNum">
/// <c> PriceDiscJournalNum </c>
/// </param>
/// <param name="inventDimId">
/// <c> InventDimId </c>
/// </param>
/// <param name="_fromCompany">
/// <c> SelectableDataArea </c>
/// </param>
/// <remarks>
/// to create a record in the <c>PriceDiscAdmTrans</c>
/// </remarks>
public void createPriceDiscAdmTrans(PriceDiscAdmTrans _fromPriceDiscAdmTrans, PriceDiscAdmTrans _toPriceDiscAdmTrans,
                                     PriceDiscJournalNum _journalNum, InventDimId inventDimId,
                                     SelectableDataArea _fromCompany)
{
    _toPriceDiscAdmTrans = this.updateToPriceDiscAdmTrans(_fromPriceDiscAdmTrans, _toPriceDiscAdmTrans, _fromCompany);

    _toPriceDiscAdmTrans.AccountCode             = _fromPriceDiscAdmTrans.AccountCode;
    _toPriceDiscAdmTrans.AccountRelation         = _fromPriceDiscAdmTrans.AccountRelation;
    _toPriceDiscAdmTrans.Agreement               = _fromPriceDiscAdmTrans.Agreement;
    _toPriceDiscAdmTrans.AllocateMarkup          = _fromPriceDiscAdmTrans.AllocateMarkup;
    _toPriceDiscAdmTrans.Amount                  = _fromPriceDiscAdmTrans.Amount;
    _toPriceDiscAdmTrans.CalendarDays            = _fromPriceDiscAdmTrans.CalendarDays;
    _toPriceDiscAdmTrans.Currency                = _fromPriceDiscAdmTrans.Currency;
    _toPriceDiscAdmTrans.DeliveryTime            = _fromPriceDiscAdmTrans.DeliveryTime;
    _toPriceDiscAdmTrans.FromDate                = _fromPriceDiscAdmTrans.FromDate;
    _toPriceDiscAdmTrans.GenericCurrency         = _fromPriceDiscAdmTrans.GenericCurrency;
    _toPriceDiscAdmTrans.InventDimId             = inventDimId;
    _toPriceDiscAdmTrans.ItemCode                = _fromPriceDiscAdmTrans.ItemCode;
    _toPriceDiscAdmTrans.ItemRelation            = _fromPriceDiscAdmTrans.ItemRelation;
    _toPriceDiscAdmTrans.JournalNum              = _journalNum;
    _toPriceDiscAdmTrans.Markup                  = _fromPriceDiscAdmTrans.Markup;
    _toPriceDiscAdmTrans.Module                  = _fromPriceDiscAdmTrans.Module;
    _toPriceDiscAdmTrans.Percent1                = _fromPriceDiscAdmTrans.Percent1;
    _toPriceDiscAdmTrans.Percent2                = _fromPriceDiscAdmTrans.Percent2;
    _toPriceDiscAdmTrans.PriceUnit               = _fromPriceDiscAdmTrans.PriceUnit;
    _toPriceDiscAdmTrans.QuantityAmountFrom      = _fromPriceDiscAdmTrans.QuantityAmountFrom;
    _toPriceDiscAdmTrans.QuantityAmountTo        = _fromPriceDiscAdmTrans.QuantityAmountTo;
    _toPriceDiscAdmTrans.Relation                = _fromPriceDiscAdmTrans.Relation;
    _toPriceDiscAdmTrans.SearchAgain             = _fromPriceDiscAdmTrans.SearchAgain;
    _toPriceDiscAdmTrans.ToDate                  = _fromPriceDiscAdmTrans.ToDate;
    _toPriceDiscAdmTrans.UnitId                  = _fromPriceDiscAdmTrans.UnitId;
    _toPriceDiscAdmTrans.DisregardLeadTime       = _fromPriceDiscAdmTrans.DisregardLeadTime;
    _toPriceDiscAdmTrans.InventBaileeFreeDays_RU = _fromPriceDiscAdmTrans.InventBaileeFreeDays_RU;
    _toPriceDiscAdmTrans.AgreementHeaderExt_RU   = _fromPriceDiscAdmTrans.AgreementHeaderExt_RU;
    _toPriceDiscAdmTrans.MaximumRetailPrice_IN   = _fromPriceDiscAdmTrans.MaximumRetailPrice_IN;
    _toPriceDiscAdmTrans.krfSalesOrderCategory   = _fromPriceDiscAdmTrans.krfSalesOrderCategory;
    _toPriceDiscAdmTrans.KRFMarkdownModel        = _fromPriceDiscAdmTrans.KRFMarkdownModel;
    _toPriceDiscAdmTrans.KRFMarkdownReason       = _fromPriceDiscAdmTrans.KRFMarkdownReason;
    _toPriceDiscAdmTrans.KRFIsMarkdown           = _fromPriceDiscAdmTrans.KRFIsMarkdown;
    _toPriceDiscAdmTrans.MustBeDeleted           = _fromPriceDiscAdmTrans.MustBeDeleted;
    // NS Developed by Aditi Gupta for TED_CS_FDD80_TradeAgreements on 1/18/2017 09:12:18 am
    _toPriceDiscAdmTrans.TEDRetailCategoryName   = _fromPriceDiscAdmTrans.TEDRetailCategoryName;
    _toPriceDiscAdmTrans.TEDItemName             = _fromPriceDiscAdmTrans.TEDItemName;
    // NE Developed by Aditi Gupta for TED_CS_FDD80_TradeAgreements on 1/18/2017 09:12:18 am
    recordList.add(_toPriceDiscAdmTrans);
}
tatic void idbExecutePricPriceDiscJourSvcJob(Args _args)
{
    // PricePrice Vars
    PricePriceDiscJournalService            PriceDiscSvc;
    PricePriceDiscJournal                   PriceDiscJour;
    PricePriceDiscJournal_PriceDiscAdmTrans PriceDiscJourAdmTrans;
    PricePriceDiscJournal_InventDim         PriceDiscJourDim;
   
    // keys return from create process
    AifEntityKeyList                        keys;
  
    PriceDiscSvc = PricePriceDiscJournalService::construct();
    PriceDiscJour = new PricePriceDiscJournal();
    PriceDiscJourAdmTrans = PriceDiscJour.createPriceDiscAdmTrans().addNew();
    PriceDiscJourDim = PriceDiscJourAdmTrans.createInventDim().addNew();

    // Set PriceDiscJourDim
    PriceDiscJourDim.parminventDimId("your dim id");

    // Set PriceDiscJourAdmTrans
   // PriceDiscJourAdmTrans.parmInventDim().add(PriceDiscJourDim);
    PriceDiscJourAdmTrans.parmItemRelation(InventTable::findByProduct( your product).ItemId);
    PriceDiscJourAdmTrans.parmItemCode(TableGroupAll::Table);
    PriceDiscJourAdmTrans.parmAmount(100.00);
    PriceDiscJourAdmTrans.parmFromDate(today());
    PriceDiscJourAdmTrans.parmAccountCode(TableGroupAll::All);
    PriceDiscJourAdmTrans.parmrelation(PriceType::PriceSales);
    PriceDiscJourAdmTrans.parmCurrency("USD");
   

    // Post PriceDiscJour
    keys = PriceDiscSvc.create(PriceDiscJour);
        }
    }
}



How ever , this will only create trade agreement .
If you want to post automatically, then you neeed to modify the "priceDiscAdmCheckPost" method of class


public void priceDiscAdmCheckPost()
{
    PriceDiscAdmCheckPost   priceDiscAdmCheckPost = new PriceDiscAdmCheckPost(false);//To make sure posting is happen

    if (initNoErrorsInInfolog == infolog.num(Exception::Error))
    {
        priceDiscAdmCheckPost.initJournalNum(priceDiscAdmTable.JournalNum);
        priceDiscAdmCheckPost.run();
    }
}

}