目前分類:ERP - Dynamics 365 ( AX) (115)

瀏覽方式: 標題列表 簡短摘要
QueryBuildRange qbr;
 

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

COC FORM BUTTON IN D365 CHAIN OF COMMAND

 

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

class CustomizedLookup extends RunBase
{
    DialogField fieldAccount;
    CustAccount custAccount;
    DialogField dialogField , dialogText1, dialogText2, dialogText3 , dialogText4;
    str refundreason, commentcs, nextOwnership;
    DGS_RefundType refundType;
    DGS_RefundRegister  existingRefund;
    real _refundAmount, _maxRefundAmount;

    SalesId salesId;

    public Object dialog()
    {
        FormBuildStringControl _stringControl;
        
        //Dialog dialog = new Dialog();
        DialogRunbase       dialog = super();


        str strMessage = strFmt("Are you sure you want to create refund register for  %1, please provide below details.", salesId);
        str strTitle = "create refund register";
        ;

        DGS_SalesTableCalculation salesTableCal  = DGS_SalesTableCalculation::find(SalesId);
        select sum(refundamount) from existingRefund where existingRefund.salesid == SalesId;
        _refundAmount = (salesTableCal.TotalAmount > existingRefund.refundamount)? (salesTableCal.TotalAmount - existingRefund.refundamount):0;

        if(_refundAmount)
        {
            _maxRefundAmount = _refundAmount;

            Dialog.addText(strMessage);

            if(salesTableCal.TotalAmount == _refundAmount)
            {
                dialogField = dialog.addField(enumStr(DGS_RefundType));
                DialogField.value(DGS_RefundType::Full);
            }
            else
            {
                dialogField = dialog.addField(enumStr(DGS_RefundType));
                DialogField.value(DGS_RefundType::Partial);
            }

            // add lookup on dialog
            dialogText1 = dialog.addField(extendedTypeStr(ReasonComment));
            _stringControl = dialogText1.control();
            _stringControl.registerOverrideMethod(methodStr(FormStringControl, lookup),
                                                    methodStr(CustomizedLookup, refundTypelookup), this);

            //dialogText1 = dialog.addField(extendedTypeStr(String50), 'Refund Reason');
            //dialogText1.value('Internal issue');
            dialogText2 = dialog.addField(extendedTypeStr(String50), 'Comment (CS)');
            dialogText2.limitText(500);
            dialogText3 = dialog.addField(extendedTypeStr(String50),'Next Ownership');
            dialogText3.value('compliance');
            dialogText4 = dialog.addField(extendedTypeStr(RealBase), 'Refund Amount');
            dialogText4.value(_refundAmount);

        }
        else
        {
            Error(strFmt('%1 Full Refunded, please check via Refund Register.', SalesId));
        }

        return dialog;

    }

    public boolean getFromDialog()
    {
        refundType = dialogField.value();
        refundreason = dialogText1.value();
        commentcs = dialogText2.value();
        nextOwnership = dialogText3.value();
        _refundAmount =  dialogText4.value();
        return super();
    }

    public container pack()
    {
        return conNull();
    }

    public void run()
    {   
                if(_refundAmount > _maxRefundAmount)
                {
                    Error(strFmt('Refund amount %1 over max refund amount %2.', _refundAmount , _maxRefundAmount));
                }
                else
                {
                    DGS_CreateRefundRegister::createRefundRegister(SalesId,refundType,refundreason,commentcs,nextOwnership, _refundAmount);
                }
    }

    public boolean unpack(container _packedClass)
    {
        return true;
    }

    public static void main(Args _args)
    {
        CustomizedLookup custAmountCalculation = new CustomizedLookup();
        if (CustAmountCalculation.prompt())
        {
            CustAmountCalculation.run();
        }
    }

    public SalesId parmSalesId(SalesId _salesId = salesId)
    {
        SalesId = _salesId;
        return SalesId;
    }

    public void refundTypelookup(FormStringControl _control)
    {
        Query                   query = new Query();
        QueryBuildDataSource    queryBuildDataSource;
        SysTableLookup          sysTableLookup = SysTableLookup::newParameters(tableNum(DGS_ReasonTable),
                                                                           _control);
        // Create lookup 
        sysTableLookup.addLookupField(fieldNum(DGS_ReasonTable, ReasonType));
        sysTableLookup.addLookupField(fieldNum(DGS_ReasonTable, Reason), true);

        // Setup query
        queryBuildDataSource = query.addDataSource(tableNum(DGS_ReasonTable));
        queryBuildDataSource.addRange(fieldNum(DGS_ReasonTable,ReasonType)).value(enum2Str(DGS_ReasonType::Refund));
        sysTableLookup.parmQuery(query);

        // Perform lookup
        sysTableLookup.performFormLookup();

    }

}

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

Below are the sample queries to get the vendors and customers addresses and contact details. Change the code according to your requirement.
All Vendors
SELECT * FROM VENDTABLE WHERE VENDTABLE.DATAAREAID='CEU'

All Addresses - Vendor 
SELECT * FROM  DirPartyPostalAddressView  JOIN VENDTABLE ON  DirPartyPostalAddressView.PARTY =VENDTABLE.PARTY
WHERE VENDTABLE.DATAAREAID=''CEU'

All Addresses with Purpose
SELECT LOGISTICSLOCATIONROLE.*,DirPartyPostalAddressView.*,VENDTABLE.* FROM  DirPartyPostalAddressView  JOIN VENDTABLE ON  DirPartyPostalAddressView.PARTY =VENDTABLE.PARTY
JOIN DIRPARTYLOCATIONROLE ON  DIRPARTYLOCATIONROLE.PARTYLOCATION =DirPartyPostalAddressView.RECID
JOIN LOGISTICSLOCATIONROLE ON DIRPARTYLOCATIONROLE.LOCATIONROLE =LOGISTICSLOCATIONROLE.RECID
WHERE VENDTABLE.DATAAREAID='CEU'
(Click Organization administration > Setup > Global address book > Address and contact information purpose.)

All Contact Details - Vendor 
select * from dirPartyContactInfoView JOIN VENDTABLE ON  dirPartyContactInfoView.PARTY =VENDTABLE.PARTY
WHERE VENDTABLE.DATAAREAID='CEU'

--All Customers
--SELECT DIRPARTYTABLE.NAMEALIAS ,CUSTTABLE.* FROM CUSTTABLE JOIN DIRPARTYTABLE ON  CUSTTABLE.PARTY =DIRPARTYTABLE.RECID
--WHERE CUSTTABLE.DATAAREAID='CEU'

--All Addresses - Customer 
--SELECT DirPartyPostalAddressView.*,CUSTTABLE.PARTY  FROM  DirPartyPostalAddressView  JOIN CUSTTABLE
--ON  DirPartyPostalAddressView.PARTY =CUSTTABLE.PARTY
--WHERE CUSTTABLE.DATAAREAID='CEU'

--All Addresses with Purpose - Customer
--SELECT LOGISTICSLOCATIONROLE.NAME,DirPartyPostalAddressView.PARTY,CUSTTABLE.PARTY FROM  DirPartyPostalAddressView  JOIN CUSTTABLE
--ON  DirPartyPostalAddressView.PARTY =CUSTTABLE.PARTY
--JOIN DIRPARTYLOCATIONROLE ON  DIRPARTYLOCATIONROLE.PARTYLOCATION =DirPartyPostalAddressView.RECID
--JOIN LOGISTICSLOCATIONROLE ON DIRPARTYLOCATIONROLE.LOCATIONROLE =LOGISTICSLOCATIONROLE.RECID
--WHERE CUSTTABLE.DATAAREAID='CEU'

--All Contact Details - Customer 
--select dirPartyContactInfoView.* from dirPartyContactInfoView JOIN CUSTTABLE ON  dirPartyContactInfoView.PARTY =CUSTTABLE.PARTY
--WHERE CUSTTABLE.DATAAREAID='CEU'

--Bank Details Customer
 --SELECT distinct CUSTTABLE.PARTY ,CUSTTABLE.DATAAREAID ENTITY, CUSTTABLE.ACCOUNTNUM, DIRPARTYTABLE.NAME,Address.ADDRESS ,
 --CUSTTABLE.CURRENCY ,CUSTTABLE.CUSTGROUP  ,
 --CUSTTABLE.PAYMTERMID,CUSTTABLE.TAXGROUP VATGROUP ,CUSTTABLE.CASHDISC ,
 --VendBankAccount.ACCOUNTID BankAccount ,VendBankAccount.NAME 'Bank Name' ,VendBankAccount.ACCOUNTNUM 'Bank account number',
 --VendBankAccount.RegistrationNum 'Routing Number',VendBankAccount.SWIFTNo,VendBankAccount.BankIBAN
 --from CUSTTABLE left outer JOIN VendBankAccount ON VendBankAccount.VENDACCOUNT = CUSTTABLE.ACCOUNTNUM --AND  VendBankAccount.ACCOUNTID = CUSTTABLE.BANKACCOUNT
 --left outer join DIRPARTYTABLE ON DIRPARTYTABLE.RECID = CUSTTABLE.PARTY
 --left outer join LOGISTICSPOSTALADDRESS AS Address ON Address.LOCATION = DIRPARTYTABLE.PRIMARYADDRESSLOCATION
 -- WHERE CUSTTABLE.DATAAREAID IN ('CEU') --and CUSTTABLE.ACCOUNTNUM ='test033'
 --Order by  CUSTTABLE.DATAAREAID,CUSTTABLE.ACCOUNTNUM

Below SQL  Query to extract a quick customer contact list from Dynamics AX 2012.

REF
REF

SELECT 
  VENDTABLE.ACCOUNTNUM AS CUSTID,
  DIRPARTYTABLE.NAME AS CUSTNAME,
  CASE LOGISTICSELECTRONICADDRESS.TYPE WHEN 1 THEN 'Phone' WHEN 2 THEN 'Email' END AS CONTACTTYPE,
  LOGISTICSELECTRONICADDRESS.DESCRIPTION AS CONTACTNAME,
  LOGISTICSELECTRONICADDRESS.LOCATOR AS CONTACTDETAILS
FROM DIRPARTYTABLE AS DIRPARTYTABLE
INNER JOIN VENDTABLE ON DIRPARTYTABLE.RECID = VENDTABLE.PARTY
INNER JOIN DIRPARTYLOCATION ON DIRPARTYTABLE.RECID = DIRPARTYLOCATION.PARTY
INNER JOIN LOGISTICSELECTRONICADDRESS ON DIRPARTYLOCATION.LOCATION = LOGISTICSELECTRONICADDRESS.LOCATION
WHERE VENDTABLE.DATAAREAID='CEU'
ORDER BY DIRPARTYTABLE.NAME


Vendor Bank Details SQL Query in AX


Vendor Bank Address in X++ Code and save it in CSV in AX


Fetch Customers Primary Address or Vendor Primary  Address having Transactions (SQL SERVER Query) in AX D365


Fetch Product Master 

SELECT B.DISPLAYPRODUCTNUMBER,DESCRIPTION,NAME,B.SEARCHNAME FROM ECORESPRODUCTTRANSLATION A JOIN ECORESPRODUCT B ON A.PRODUCT =B.RECID WHERE B.DISPLAYPRODUCTNUMBER in ('A0001','A0002')


--Storage Dimensions
select ECORESSTORAGEDIMENSIONGROUPITEM.ITEMID ,ECORESSTORAGEDIMENSIONGROUP.NAME from INVENTTABLE JOIN ECORESSTORAGEDIMENSIONGROUPITEM ON
 INVENTTABLE.ITEMID =ECORESSTORAGEDIMENSIONGROUPITEM.ITEMID AND
 INVENTTABLE.DATAAREAID  =ECORESSTORAGEDIMENSIONGROUPITEM.ITEMDATAAREAID
 JOIN  ECORESSTORAGEDIMENSIONGROUP ON
 ECORESSTORAGEDIMENSIONGROUPITEM.STORAGEDIMENSIONGROUP =ECORESSTORAGEDIMENSIONGROUP.RECID
 WHERE INVENTTABLE.DATAAREAID='CEU'


--Tracking Dimensions
select ECORESTRACKINGDIMENSIONGROUPITEM.ITEMID ,ECORESTRACKINGDIMENSIONGROUP.NAME from INVENTTABLE JOIN ECORESTRACKINGDIMENSIONGROUPITEM ON
 INVENTTABLE.ITEMID =ECORESTRACKINGDIMENSIONGROUPITEM.ITEMID AND
 INVENTTABLE.DATAAREAID  =ECORESTRACKINGDIMENSIONGROUPITEM.ITEMDATAAREAID
 JOIN  ECORESTRACKINGDIMENSIONGROUP ON
 ECORESTRACKINGDIMENSIONGROUPITEM.TRACKINGDIMENSIONGROUP =ECORESTRACKINGDIMENSIONGROUP.RECID
 WHERE INVENTTABLE.DATAAREAID='CEU'


 --Item Model Group Units
 select * from INVENTTABLEMODULE where DATAAREAID='CEU'

 --Released Products
 Select * from INVENTTABLE where DATAAREAID='CEU'

 --Item Group
 select * from INVENTITEMGROUPITEM  where ItemDATAAREAID='CEU'

Vend Open Trans

SELECT VENDTRANS.ACCOUNTNUM,VendTrans.VOUCHER,VendTrans.Invoice,VendTrans.TRANSDATE AS DueDate,VendTrans.AmountCur, VendTrans.AmountCur-VendTrans.SETTLEAMOUNTCUR as BalanceAmount 
FROM VENDTRANS
where VENDTRANS.closed = 0
AND ((VendTrans.TransType = 36)
OR (VendTrans.TransType = 3) --Purch
OR (VendTrans.TransType = 14)) --Vend
AND ((VendTrans.AmountCur<=0)) AND ((VendTrans.Approved = 1))
--AND VENDTRANS.ACCOUNTNUM = '1001' AND VENDTRANS.DATAAREAID = 'USMF'


SELECT VENDTRANS.ACCOUNTNUM,VendTrans.VOUCHER,VendTrans.Invoice,VendTrans.TRANSDATE AS DueDate,VendTrans.AmountCur, VendTrans.AmountCur-VendTrans.SETTLEAMOUNTCUR as BalanceAmount  ,*
FROM VENDTRANS where
--where VENDTRANS.closed = 0
--AND ((VendTrans.TransType = 36) OR (VendTrans.TransType = 3)
-- OR (VendTrans.TransType = 14)) AND ((VendTrans.AmountCur<=0)) AND ((VendTrans.Approved = 1))
 VENDTRANS.DATAAREAID = 'pui'

SELECT VENDTRANS.ACCOUNTNUM,VendTrans.VOUCHER,VendTrans.Invoice,VendTrans.TRANSDATE AS DueDate,VendTrans.AmountCur, VendTrans.AmountCur-VendTrans.SETTLEAMOUNTCUR as BalanceAmount 
FROM VENDTRANS
where VENDTRANS.closed = 0 and
VENDTRANS.DATAAREAID = 'pui'
AND ((VendTrans.TransType = 36) --RTax25_BadDebtDebitAmortisation
OR (VendTrans.TransType = 3) --Purch
OR (VendTrans.TransType = 14)) --Vend
AND ((VendTrans.AmountCur<=0)) AND ((VendTrans.Approved = 1))

--AND VENDTRANS.ACCOUNTNUM = '1001' AND VENDTRANS.DATAAREAID = 'USMF'


lionlionchopper 發表在 痞客邦 留言(0) 人氣()

1. 找尋workspace, server 的資料:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>TF.exe workspaces /owner:* /computer:*

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

目的: 加financial dimension 入去excel template

1. 第一, 要先將自家的financial dimension 加入ODATA (之前有篇教學)

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

Table name from table id

以下語句返回數據庫中 table id  9669的名稱,如上所述,我們正在尋找field id 為0的行。

  /* GET table name for table id */
  SELECT NAME
  FROM SQLDICTIONARY
  WHERE TABLEID = 9669 AND FIELDID = 0

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

  1. Open lcs.dynamics.com in your web browser.
  2. Log in with your credentials.
  3. Select the LCS project you want to add a Azure subscription to from the list.
  4. Click the Hamburger menu button.
  5. Select Cloud-hosted environments from the list.

image 

  1. On the Cloud-hosted environments page, click Add.
  2. On the Select environment topology page, select Azure.
  3. On the next Select environment topology page, select DEMO. (Now as a side note, you can select DEVTEST - however this requires that you have configured Visual Studio Team Services in your LCS project, which I have not shown yet.) I will post again about the differences between the two environments.)
  4. On the next Select environment topology page, select Dynamics 365 for Operations - Develop (Release 1611, Platform Update 4). (This is the most current release - but obviously you can pick any version of the software you want.)
  5. On the Deploy environment page, type  a unique name in the Environment name field. 
  6. In the grid for the virtual machines, Use the Size drop-down to select D13 v2 for both images. (This is the biggest, fastest server you can choose. This is not required, but you can pick any size you want really. This will change your costs for hosting the environment as well.)
  7. Click Advanced settings.

image

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

public class InventSum_View extends common
{

    private static str prepareInventPhyStr(str key)
    {
        #define.ViewName(InventSum_View)
        #define.DataSourceName("InventSum")

        #define.FieldPostedQty("postedQty")
        #define.FieldPostedValue("PostedValue")
        #define.FieldPhysicalValue("PhysicalValue")
        
        str sReturn,
            postedQty,
            postedValue,
            PhysicalValue;

        DictView dictView2;
        // Construct a DictView object for the present view.
        dictView2 = new DictView(tableNum(#ViewName));
            
        postedQty = dictView2.computedColumnString
        (#DataSourceName,
        #FieldPostedQty,
        FieldNameGenerationMode::FieldList,
        true);

        postedValue = dictView2.computedColumnString
        (#DataSourceName,
        #FieldPostedValue,
        FieldNameGenerationMode::FieldList,
        true);
        
        physicalValue = dictView2.computedColumnString
        (#DataSourceName,
        #FieldPhysicalValue,
        FieldNameGenerationMode::FieldList,
        true);
                      
       switch(key)
        {   
        case "Cost":
            sReturn = "CASE WHEN  sum(" +  postedQty +   ") = 0 OR sum(" +  postedQty +   ") IS NULL "
                    + " THEN 0 "
                    + " ELSE sum(" +  postedValue + ") / sum("  + postedQty +   ")"
                    + " END";
        break;
        case "PostedQty":
            sReturn ="sum("
                    +   postedQty
                    +   ")"    ;
            break;
        case "PostedValue":
            sReturn ="sum("
                    +   PostedValue
                    +   ")"    ;
            break;

            }

        return sReturn;
    }

    private static server str compCostMethod()
    {
        str sReturn;
        sReturn = InventSum_View::prepareInventPhyStr("Cost");
        return sReturn;
    }

    private static server str compPosteQtyMethod()
    {
        str sReturn;
        sReturn = InventSum_View::prepareInventPhyStr("PostedQty");
        return sReturn;
    }

    private static server str compPostedValueMethod()
    {
        str sReturn;
        sReturn = InventSum_View::prepareInventPhyStr("PostedValue");
        return sReturn;
    }

}

 

2. CAL ROW VIEW:

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

[DataEventHandler(tableStr(CustTable), DataEventType::Inserting)]
    public static void CustTable_onInserting(Common sender, DataEventArgs e)
    {
        CustTable custTable = sender as CustTable;

        custTable.inventSiteId = InventParameters::find().DGS_MainInventSiteId;
        CustTable.InventLocation = InventParameters::find().DGS_MainInventLocationId;

        if(!CustTable.CustGroup)
            CustTable.CustGroup = THK_FileInterfaceParameters::find().CustGroupId;

        if(!CustTable.DGS_CustNature)
            CustTable.DGS_CustNature = THK_FileInterfaceParameters::find().DGS_CustNature;
    }

    /// <summary>
    ///
    /// </summary>
    /// <param name="args"></param>
    [PreHandlerFor(tableStr(CustTable), tableMethodStr(CustTable, validateWrite))]
    public static void CustTable_Pre_validateWrite(XppPrePostArgs args)
    {
        CustTable custTable = args.getThis() as CustTable;

        if(!CustTable.CustGroup)
            CustTable.CustGroup = THK_FileInterfaceParameters::find().CustGroupId;

        if(!CustTable.DGS_CustNature)
            CustTable.DGS_CustNature = THK_FileInterfaceParameters::find().DGS_CustNature;

    }


In Table Datasource Events --> right click on Init Value--> Copy Post Event Handlers
Create new Class and below code

Table Method Event Handler
 

class test_PurchTableEventHanlders
{
    /// <summary>
    ///
    /// </summary>
    /// <param name="args"></param>
    [PostHandlerFor(tableStr(PurchTable), tableMethodStr(PurchTable, initValue))]
    public static void PurchTable_Post_initValue(XppPrePostArgs args)
    {
        PurchTable purchTable = args.getThis() as PurchTable;
        purchTable.test_PrintNote=NoYes::Yes;
    }

}


lionlionchopper 發表在 痞客邦 留言(0) 人氣()

  [DataSource]
    class SalesTable
    {
        /// <summary>
        ///
        /// </summary>
        /// <param name = "_append"></param>
        public void create(boolean _append = false)
        {

            SalesTableForm  salesTableForm;

            super(_append);
            salesTableForm =   SalesTableForm::construct(SalesTableFormId::None, element.args().record());
            
            if (salesTableForm.create())
            {
                SalesTable newSalesTable = salesTableForm.salesTable();

                if (newSalesTable)
                {
                    // refresh screen on datasource:
                    salesTable.data(newSalesTable);
                    salesTable_ds.setCurrent();
                    salesTable_ds.executeQuery();

                    Args args = new Args();
                    args.record(newSalesTable);

                    MenuFunction menuFunction = new MenuFunction(menuitemDisplayStr(SalesTable), MenuItemType::Display);
                    menuFunction.run(args);
                }
            }
        }

    }

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

使用formRun.wait(); 如果要停止執行直到關閉窗體。

或使用formRun.detach(); 如果您要讓表格單獨運行。

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

[ExtensionOf(formStr(InventOnhandItem))]
final class DGS_InventOnhandItem_Extension

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

    /// <summary>
    /// 在POST Run時用新method 取代本來的method
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    [FormEventHandler(formStr(WMSJournalTable), FormEventType::PostRun)]
    public static void WMSJournalTable_OnPostRun(xFormRun sender, FormEventArgs e)
    {
        FormDateControl   formCtrl = sender.design().controlName(formControlStr(WMSJournalTable, WMSJournalTrans_DGS_ExpDate));
        formCtrl.registerOverrideMethod(methodStr(FormDateControl, jumpRef), methodStr(DGS_WMSJournalTableForm_Extension, DGS_ExpDate_jumpRefId), sender);

        FormFunctionButtonControl   formMenuCtrl = sender.design().controlName(formControlStr(WMSJournalTable, PostJournal));
        formMenuCtrl.registerOverrideMethod(methodStr(FormFunctionButtonControl, clicked), methodStr(DGS_WMSJournalTableForm_Extension, PostJournal_clicked), sender);
    }

 

另外開一個extension:

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

image

前幾天,當我嘗試為Dynamics 365 Finance and Operations測試自定義數據實體時,收到此錯誤“Configuration key not enabled for the entity” 我之前在另一個項目上曾見過該錯誤,但完全忘記瞭如何修復它。 如果是新刷新的環境,或者您創建了自定義數據實體,並嘗試首次使用它,則可能導致此錯誤。 解決方案是刷新數據實體列表,並且我將在本文中逐步詳細介紹如何進一步執行此操作。

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

分享有關Dynamics AX 2012中使用的時區和用於在SQL中存儲UTCDateTime值的TZId值的概述。

Timezone description TimeZone TZId field
(GMT-12:00) International Date Line West 24 24001
(GMT-11:00) Midway Island, Samoa 65 65001
(GMT-10:00) Hawaii 39 39001
(GMT-09:00) Alaska 2 2001
(GMT-08:00) Pacific Time (US &amp; Canada) 58 58001
(GMT-08:00) Tijuana, Baja California 59 59001
(GMT-07:00) Arizona 75 75001
(GMT-07:00) Mountain Time (US &amp; Canada) 47 47001
(GMT-07:00) Chihuahua, La Paz, Mazatlan 48 48001
(GMT-06:00) Central America 15 15001
(GMT-06:00) Central Time (US &amp; Canada) 21 21001
(GMT-06:00) Guadalajara, Mexico City, Monterrey 22 22001
(GMT-06:00) Saskatchewan 11 11001
(GMT-05:00) Bogota, Lima, Quito, Rio Branco 63 63001
(GMT-05:00) Eastern Time (US &amp; Canada) 29 29001
(GMT-05:00) Indiana (East) 74 74001
(GMT-04:00) Atlantic Time (Canada) 6 6001
(GMT-04:00) La Paz 64 64001
(GMT-04:00) Manaus 17 17001
(GMT-04:00) Santiago 57 57001
(GMT-04:30) Caracas 85 85001
(GMT-03:30) Newfoundland 54 54001
(GMT-03:00) Brasilia 28 28001
(GMT-03:00) Buenos Aires, Georgetown 62 62001
(GMT-03:00) Greenland 36 36001
(GMT-03:00) Montevideo 83 83001
(GMT-02:00) Mid-Atlantic 45 45001
(GMT-01:00) Azores 10 10001
(GMT-01:00) Cape Verde Is. 12 12001
(GMT) Casablanca, Monrovia, Reykjavik 37 37001
(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, Londo 35 35001
(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna 79 79001
(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Pragu 18 18001
(GMT+01:00) Brussels, Copenhagen, Madrid, Paris 60 60001
(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb 19 19001
(GMT+01:00) West Central Africa 78 78001
(GMT+02:00) Amman 43 43001
(GMT+02:00) Athens, Bucharest, Istanbul 38 38001
(GMT+02:00) Beirut 46 46001
(GMT+02:00) Minsk 27 27001
(GMT+02:00) Cairo 30 30001
(GMT+02:00) Harare, Pretoria 68 68001
(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius 33 33001
(GMT+02:00) Jerusalem 42 42001
(GMT+02:00) Windhoek 51 51001
(GMT+03:00) Baghdad 5 5001
(GMT+03:00) Kuwait, Riyadh 3 3001
(GMT+03:00) Moscow, St. Petersburg, Volgograd 61 61001
(GMT+03:00) Nairobi 25 25001
(GMT+03:00) Tbilisi 34 34001
(GMT+03:30) Tehran 41 41001
(GMT+04:00) Abu Dhabi, Muscat 4 4001
(GMT+04:00) Baku 9 9001
(GMT+04:00) Caucasus Standard Time 84 84001
(GMT+04:00) Yerevan 13 13001
(GMT+04:30) Kabul 1 1001
(GMT+05:00) Ekaterinburg 31 31001
(GMT+05:00) Islamabad, Karachi, Tashkent 80 80001
(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi 40 40001
(GMT+05:30) Sri Jayawardenepura 69 69001
(GMT+05:45) Kathmandu 52 52001
(GMT+06:00) Almaty, Novosibirsk 50 50001
(GMT+06:00) Astana, Dhaka 16 16001
(GMT+06:30) Yangon (Rangoon) 49 49001
(GMT+07:00) Bangkok, Hanoi, Jakarta 66 66001
(GMT+07:00) Krasnoyarsk 56 56001
(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi 23 23001
(GMT+08:00) Irkutsk, Ulaan Bataar 55 55001
(GMT+08:00) Kuala Lumpur, Singapore 67 67001
(GMT+08:00) Perth 77 77001
(GMT+08:00) Taipei 70 70001
(GMT+09:00) Osaka, Sapporo, Tokyo 72 72001
(GMT+09:00) Seoul 44 44001
(GMT+09:00) Yakutsk 82 82001
(GMT+09:30) Adelaide 14 14001
(GMT+09:30) Darwin 7 7001
(GMT+10:00) Brisbane 26 26001
(GMT+10:00) Canberra, Melbourne, Sydney 8 8001
(GMT+10:00) Guam, Port Moresby 81 81001
(GMT+10:00) Hobart 71 71001
(GMT+10:00) Vladivostok 76 76001
(GMT+11:00) Magadan, Solomon Is., New Caledonia 20 20001
(GMT+12:00) Auckland, Wellington 53 53001
(GMT+12:00) Fiji, Kamchatka, Marshall Is. 32 32001
(GMT+13:00) Nuku’alofa 73 73001

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

Full Set:

image

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

D365FO , rebuild index after updated:

UAT- Batch Job to rebuild

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

Example 1:

1 個value: 

lionlionchopper 發表在 痞客邦 留言(0) 人氣()

1. 整4個新FILE:

> Data Entities : Entity

lionlionchopper 發表在 痞客邦 留言(0) 人氣()