Friday, 13 December 2024

Copy the buffer values from one form to another without storing recid in DB

salesLine.initFromProductDimensions(inventDim);

salesLine.InventDimId = inventDim.inventDimId;


salesLine.setPriceDisc(inventDim);


//salesLine.createLine(true,true,true,true,true,true);

FormDataSource fds = salesTable.dataSource();

FormDataSource fdsSalesLine = fds.formRun().dataSource('SalesLine');

fdsSalesLine.create();

// Create new record

SalesLine    salesLineNew;

salesLineNew = fdsSalesLine.cursor();

 

// Copy data from original record to the new record and adjust ValidFrom


buf2Buf(salesLine, salesLineNew);

fdsSalesLine.rereadReferenceDataSources(); 

Tuesday, 6 February 2024

 Import DB in SQL

1. Change directory to the path where SQLPackage.exe is available

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130

2. Run the below command

SqlPackage.exe /Action:Import /SourceFile:"C:\Users\Admin9470282646\Desktop\DB\backup.bacpac" /TargetConnectionString:"Data Source=localhost;Initial Catalog=MyDB;Integrated Security=True;" /p:CommandTimeout="0"


Thursday, 16 April 2020

Upgrade in D365

1. Download package from Asset library in LCS
2. Unblock it and extract the files
3. change VM name in DefaultTopologyData.xml
4. open developer command prompt for VS2015
5. run the below steps

AXUpdateInstaller.exe generate -runbookid="RunBookId" -topologyfile="DefaultTopologyData.xml" -servicemodelfile="DefaultServiceModelData.xml" -runbookfile=RunBookFile.XML

AXUpdateInstaller.exe import -runbookfile="RunBookFile.XML"

AXUpdateInstaller.exe execute -runbookid=RunBookId



Monday, 10 October 2016

To filter dimension value through code in ax 2012

qbdsProjTable = _query.dataSourceTable(tableNum(ProjTable));
           
        SysQuery::addDimensionAttributeRange(_query, qbdsProjTable.name(), fieldStr(ProjTable, DefaultDimension), DimensionComponent::DimensionAttribute, "Diving", "LineofBusiness", true);

Wednesday, 5 October 2016

Find Dimension Name based on default dimemsion

The following method can be created in DimensionDefaultingEngine class and used wherever required.



public static SysDim  umg_DefaultDimensionValue(DimensionDefault   _dimensionDefault, Description  _segmentName)
{
    DimensionAttributeValueSetStorage       dimensionStorage;
    Counter                                 i;
    SysDim                                  segmentValue;

    // Get dimension storage
    if (_dimensionDefault)
    {
        dimensionStorage = DimensionAttributeValueSetStorage::find(_dimensionDefault);
        for (i=1 ; i<= dimensionStorage.elements() ; i++)
        {
            if (DimensionAttribute::find(dimensionStorage.getAttributeByIndex(i)).Name == _segmentName)
            {
                segmentValue = dimensionStorage.getDisplayValueByIndex(i);
                break;
            }
            else
            {
                segmentValue = '';
            }
        }
    }
    return segmentValue;
}

Tuesday, 5 July 2016

Sales order creation using console apllication

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SalesOrderCreation.ServiceReference1;

namespace SalesOrderCreation
{
    class Program
    {
        static void Main(string[] args)
        {
            CreateSalesOrder();
        }
        static void CreateSalesOrder()
        {
            SalesOrderServiceClient client = new SalesOrderServiceClient();
               
            CallContext cc = new CallContext();
            cc.Company = "BM01";
            ServiceReference1.AxdSalesOrder so = new AxdSalesOrder();
          
            AxdEntity_SalesTable salesTable = new AxdEntity_SalesTable();

            AxdEntity_SalesLine salesLine = new AxdEntity_SalesLine();

            salesTable.CustAccount = "C000000007";
            salesTable.InvoiceAccount = "C000000007";

            salesTable.CurrencyCode = "USD";

            salesTable.ReceiptDateRequested = System.DateTime.Today;

            salesTable.Payment = "10D";
            salesTable.PurchOrderFormNum = "DevSuneela";

            salesLine.ItemId = "123456";
            

            salesLine.SalesQty = 20;

            salesLine.SalesUnit = "ea";
                      
            salesTable.SalesLine = new AxdEntity_SalesLine[] { salesLine };

            so.SalesTable = new AxdEntity_SalesTable[] { salesTable };

            so.DocPurpose = AxdEnum_XMLDocPurpose.Original;

            so.DocPurposeSpecified = true;
                       
            
            client.create(cc, so);

           
        }

    }
}

Thursday, 16 June 2016

Filter dimension values based on the dimension selected

To Filter standard and custom dimension values based on the dimension selected


public void lookup(FormControl _formControl, str _filterStr)
{

SysTableLookup sysTableLookup;

Query query;

QueryBuildDataSource qbdsDimensionFinancialTag,qbds,qbds1,qbds2;

QueryBuildRange qbrFinancialTagCategory;
 
//standard

DimensionAttributeValueSetItem valueSetItem;

DimensionAttribute dimAttribute;

DimensionAttributeValue dimAttributeValue;
 
str name,value;

container con;

OMOperatingUnit operatingUnit;
 
//standard

#define.MyCustomFinancialDimension('MyCustomFinancialDimension')

if( DimensionAttribute::findByName(Table1_Dimension.valueStr()).Type == DimensionAttributeType::CustomList)

{
 
query = new Query();

qbdsDimensionFinancialTag = query.addDataSource(tableNum(DimensionFinancialTag));

qbrFinancialTagCategory = qbdsDimensionFinancialTag.addRange(fieldNum(DimensionFinancialTag, FinancialTagCategory));

qbrFinancialTagCategory.value(strFmt('%1', DimensionAttribute::findByName(Table1_Dimension.valueStr(), false).financialTagCategory()));

sysTableLookup = sysTableLookup::newParameters(tableNum(DimensionFinancialTag), _formControl);

sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Value), true);

sysTableLookup.addLookupfield(fieldNum(DimensionFinancialTag, Description));

sysTableLookup.addSelectionField(fieldNum(DimensionFinancialTag, FinancialTagCategory));

sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();

}
   else

{



value = Table1_Dimension.valueStr();


 
if(value == "CostCenter")

{
 
sysTableLookup = sysTableLookup::newParameters(tableNum(DimAttributeOMCostCenter), _formControl);

query = new query();

qbds = query.addDataSource(tableNum(DimAttributeOMCostCenter));

qbds.addRange(fieldNum(DimAttributeOMCostCenter,Value)).value(SysQuery::valueUnlimited());

sysTableLookup.addLookupfield(fieldNum(DimAttributeOMCostCenter, Value), true);
           

sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();

}
 
if(value == "Brand")

{
 
sysTableLookup = sysTableLookup::newParameters(tableNum(DimAttributeOMDepartment), _formControl);

query = new query();

qbds = query.addDataSource(tableNum(DimAttributeOMDepartment));

qbds.addRange(fieldNum(DimAttributeOMDepartment,Value)).value(SysQuery::valueUnlimited());

sysTableLookup.addLookupfield(fieldNum(DimAttributeOMDepartment, Value), true);
         

sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();

}

}

}