Dynamics AX Archives - Page 5 of 5 - - Page 5

Category Archives: Dynamics AX

How to expose a field from a table NOT present in the AOT Query for an AIF service

Posted On June 1, 2015 by Posted in

1. To create an AIF service using Wizard, we are supposed to prepare an AOT query containing the tables with proper relations. 2. Once we generate the AIF Service using Wizard, the AxBC classes gets generated for each table present in the AOT Query. 3. AxBC classes contains the parm methods for each field as per table. 4. Now if we want to have a filed in the XSD/XML from a table that is not the part of the Query, we will need to do the below changes: a: In the AxBC class i.e. Ax[TableName] class, create a parm method for the field you want to include in the XSD/XML for the corresponding AIF Service. b: Perform Incremental CIL c: Refresh AIF Services d: Re-Activate the Inbound port. 5. By doing the above steps, the required field will be the part of the XSD/XML for the corresponding AIF Service.

Share Story :

Global AIF Setting without which AIF Services will Not Work in AX 2012 R2

Posted On May 28, 2015 by Posted in

1. Go to AOT. 2. There is a Form called “AifGlobalSettings”. 3. Right Click & Open the form [Refer to the below snapshot of the form] 4. There is a check box called “Enable Runtime Caching”. 5. Make sure the check box is checked else the AIF services will NOT be accessible from outside.

Share Story :

Configure Inbound Port in AX 2012 to handle Bigger size XML coming inside via AIF

Posted On May 28, 2015 by Posted in

1. The maximum size of the XML message that AX can receive is 64kb. In order to accept the XML of bigger size, we have to configure the Inbound port.   2. The web.config is created from the configuration of the inbound port. So, in order to preserve the changes even if the Inbound port gets reactivated, please make the changes as detailed below [Please refer to the below snapshots for your information] a. Go to the Inbound port. b. De-Activate the inbound port. c. Click on “Configure” button as shown below [A pop up window will come] d. Click “Yes” on the window popped up[Find below the snapshot of the popped up window] e. Now go to Bindings basicHttpBindingWithWindowsAuth as highlighted in the below snapshot. f. Now set the size of the property “MaxReceivedMessageSize” to a bigger value(like: 10485760). g. Save the changes and close the form. h. Click on Activate button to activate the Inbound port. i. Check the Web Config file from the above file location and verify the value that was set in the previous “step-f”. X++ code to fetch the data from Excel in AX 2012R2 I have come across the requirement to fetch the data from Excel in AX. Below is the X++ code to do the same: static void ImportDataFromExcel(Args _args) {     SysExcelApplication application;     SysExcelWorkbooks workbooks;     SysExcelWorkbook workbook;     SysExcelWorksheets worksheets;     SysExcelWorksheet worksheet;     SysExcelCells cells;     COMVariantType type;     int row;     ItemId itemid;     Name name;     FilenameOpen                    filename;     dialogField                     dialogFilename;     Dialog                          dialog;     ;     #AviFiles     #Excel     application = SysExcelApplication::construct();     workbooks = application.workbooks();       dialog = new Dialog(“ExcelUpload”);     dialogFilename      =   dialog.addField(extendedTypeStr(FilenameOpen));     dialog.filenameLookupFilter([“@SYS28576”,#XLS, “@SYS28576”,#XLSX]);     dialog.filenameLookupTitle(“Upload from Excel”);     dialog.caption(“Excel Upload”);     dialogFilename.value(filename);     if(!dialog.run())         return;     filename            =   dialogFilename.value();     application         =   SysExcelApplication::construct();     workbooks           =   application.workbooks();     try     {     workbooks.open(filename);     }     catch (Exception::Error)     {     throw error(“File cannot be opened.”);     }     workbook = workbooks.item(1);     worksheets = workbook.worksheets();     worksheet = worksheets.itemFromNum(1);     cells = worksheet.cells();    do { row++; itemId = cells.item(row, 1).value().bStr(); type = cells.item(row, 1).value().variantType(); info(strfmt(‘%1’, itemId)); } while (type != COMVariantType::VT_EMPTY); }

Share Story :

Creating Sales Order with address in AX 2012 R2 via AIF through .Net

Posted On May 28, 2015 by Posted in

Creating Sales Order with address information in AX 2012R2CU7 via AIF through .Net Code Please see the below .net code static void Main(string[] args)         {             // Instantiate an instance of the service client class.             SalesOrderServiceClient proxy = new SalesOrderServiceClient();               // Create an instance of the document class.             AxdSalesOrder salesOrder = new AxdSalesOrder();               // Create instances of the entities that are used in the service and             // set the needed fields on those entities.             AxdEntity_SalesTable salesTable = new AxdEntity_SalesTable();             salesTable.CurrencyCode = “USD”;             salesTable.CustAccount = “C846456”;             salesTable.ReceiptDateRequested = Convert.ToDateTime(“4/21/2015”);             salesTable.Payment = “PP”;             AxdEntityKey_LogisticsPostalAddress LPA = new AxdEntityKey_LogisticsPostalAddress();             LPA.Location_LocationId = “5637282089”;               AxdExtType_EffectiveDateTime date = new AxdExtType_EffectiveDateTime();             date.timezone = AxdEnum_Timezone.GMT_COORDINATEDUNIVERSALTIME;             DateTime dateValue = new DateTime(2015, 4, 29, 14, 10, 53, 001, DateTimeKind.Utc);               date.timezoneSpecified = false;             date.localDateTimeSpecified = false;             date.Value = dateValue;              LPA.ValidFrom = date;              salesTable.DeliveryPostalAddress = LPA;               AxdEntity_SalesLine salesLine = new AxdEntity_SalesLine();             salesLine.ItemId = “10-009”;             salesLine.SalesQty = 9;             salesLine.SalesUnit = “ea”;               CallContext callContext = new CallContext();             callContext.Language = “en-us”;             callContext.Company = “KTEC”;             salesTable.SalesLine = new AxdEntity_SalesLine[1] { salesLine };             salesOrder.SalesTable = new AxdEntity_SalesTable[1] { salesTable };               try             {                 // Call the create method on the service passing in the document.                 EntityKey[] returnedSalesOrderEntityKey = proxy.create(callContext,salesOrder);                   // The create method returns an EntityKey which contains the ID of the sales order.                 EntityKey returnedSalesOrder = (EntityKey)returnedSalesOrderEntityKey.GetValue(0);                 Console.WriteLine(“The sales order created has a Sales ID of ” + returnedSalesOrder.KeyData[0].Value);                 Console.ReadLine();             }             catch (Exception e)             {                 Console.WriteLine(e.ToString());                 Console.ReadLine();             }         } Error Details in AX exceptionlog : “The value in field DeliveryPostalAddress is invalid.”

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Categories

Secured By miniOrange