RSS

Creating New Inventory Dimension – Storage

13 Dec

Creating New Inventory Dimension – Storage

AX has 8 standard inventory dimension here is the classification of these 8 dimensions

Inventory Item Dimensions
  • Size
  • Colour
  • Configuration
Inventory Storage Dimensions
  • Batch
  • Serial
  • Warehouse
  • Location
  • Pallet

Below is the list of objects that needs to be created or modified while creating a new inventory storage dimension. Please note that the list is not exhaustive enough but contains most of the objects that needs to be modified. Let us assume the name of the new dimension would be ‘Test’

Extended Data Types

Following is the table specifying the EDTs that one may need to create for new storage dimension. Reference EDT section specifies which EDT to look at while creating new EDT.

EDT Name

Label

Extends

Type

Reference EDT

InventTestId Test SysGroup String InventLocationId
InventTestTxt Text   VarString InventSizeTxt
InterCompanyInventTestId Test SysGroup String InterCompanyInventLocationId

Tables

  1. New table ‘InventTest’ : Look at the table InventLocation for reference and create a new table InventTest. Do not forget to create the field groups, indexes, properties similar to InventLocation. You can duplicate this table and change the required fields, methods, fields groups, indexes, propeties etc.
  2. Table InventParameters : A new method ‘numRefInventTestId’ needs to be created. Take method ‘numRefInventSerialId’ for an example while creating this method.
  3. Table InventDim : You will have to create a new field ‘InventTestId’. Add this field to field groups, ‘AutoReport’, ‘InventoryDimensions’. Create a new index ‘TestIdx’ with this field, Add this field InvenyTesId to index ‘DimIdx’. Modify the following methods, take cue from code for other dimensions and add the relevant code. Methods are: ‘dim2dimParm’, ‘dimParm2dim’, ‘emptyDimField’, ‘findDim’, ‘findOrCreate’, ‘formQueryAddDynaLink’, ‘isFieldIdItemDim’, ‘isFieldIdTransferReceiptMergable’, ‘isFieldIdTransferTransitReceiptMergable’.
  4. Table InventDimParm : Add a new field ‘InventTestIdFlag’. Add this field to following field groups: ‘AutoReport’, ‘Fixedview’, ‘View’.
  5. Table InventSum : Add a new method named ‘inventTestId’. Take cues from ‘inventSerialId’ method in the table.
  6. Table InventSumDateTrans : You will have to create a new field ‘InventTestId’. Add this field to field groups, ‘AutoReport’, ‘InventoryDimension’. Modify following methods: ‘initFromInventDim’, ‘inventDim’.
  7. Table InventSumDeltaDim : You will have to create two new fields named ‘InventTestId’, ‘InventTestIdFlag’. Add the ‘InventTestId’ field to following groups : ‘AutoLookup’, ‘InventDim’. Add ‘InventTestIdFlag’ field to following groups: ‘InventDimFlags’. Modify following methods: ‘initFromInventDim’, ‘initFromInventDimParm’, ‘initInventDim’, ‘initInventDimParm’.
  8. Table InterCompanyInventDim : You will have to create a new field ‘InventTestId’. Add this field to field groups: ‘AutoReport’, ‘InventoryDimensions’, ‘TmpInventDimensions’. Add the field to following indexes: ‘DimIdx’. Modify following methods: ‘fromInventDim’, ‘toInventDim’, ‘dim2dimParm’, ‘dimParm2dim’, ‘formQueryAddLink’.
  9. Table PBATreeInventDim : You will have to create two new fields named ‘InventTestId’, ‘InventTestIdVar’. Add the ‘InventTestId’ field to following groups : ‘AutoReport’, ‘AllFields’, ‘InventoryDimensions’. Add ‘InventTestIdVar’ field to following field group: ‘InventoryDimensions’. Add a new method named ‘inventTestId’. Take cues from ‘inventSerialId’ method in the table.

Macros

Following is the list of macros that may need to be modified

  1. InventDimSelect
  2. InventDimJoin
  3. InventDimGroupAllFields
  4. InventDimExistsJoin

Classes

  1. New class AxInventTest : Run the class AxGenerateAxBC and select the table InventTest. This will create new AxBC class for InventTest table and you will have to resolve some errors.
  2. Class NumberSeqReference_Inventory : The method ‘loadModule’ has to be modified to create a reference for ‘Test’.
  3. Class InventDimRenameValue : Add a method ‘newInventTest’. Take cue from method ‘newInventSerial’ for definition of this new method.
  4. Class InventDimTracking : Modify method ‘initFromArgs’. Take an example of any of the inventory dimensions for changes.
  5. Class AxInventDim : Add parm and set methods for InventTestId field. Take example of parmInventSerialId and setInventSerialId. Modify method setTableFields to make a call to setInventTestId method.
  6. AxInventDim_PriceDiscTable : Add method setInventTestId. Take example of setInventSerialId for definition of this method.
  7. Class InventDimFixedClass : Add following methods : ‘parmInventTestIdFlag’ – Take example from parmInventSerialIdFlag method and ‘inventTestIdFlag’ – Take example from inventSerialId flag method. Create a macro for InventTestId in ClassDeclaration (look at declarations for other dimensions). Modify method ‘fieldId2Idx’.
  8. Class TradeInterCompany : Modify method ‘createTmpInventSum’.
  9. Class PBALib : Modify method ‘createInventDim’.

Apart from these classes there are many more classes that may need modifications like InventMovement, InventUpd and its child classes. InventOnhand and related classes etc. If you want to know more you can search for keyword ‘InventSerial’ in the classes node and find out.

Forms

Following new forms need to be created

  1. InventTest : Similar to InventSerial.
  2. InvenTestIdLookup : Similar to InventSerialIdLookup

InventTest screen shots

   

Menu Items

Create one display type menu item for InventTest form, similar to InventSerial Menu Item.

Note: There are more objects that can be modified. Also you will have to create a link to open the main form for the dimension at correct place in the correct menu as required.

One more important point that i would like to add if you want to know where all in the application an inventory dimension is having a impact then do a search on entire AOT for Macro #InventDimDevelop. This macro has been included in all the places which are directly impacted by inventory dimensions. Nice way to know the critical objects and take care of them

Below is the link to sample project that contains a sample for new inventory storage dimension.

http://www.axaptapedia.com/Image:SharedProject_InventTest.xpo

Advertisements
 
Leave a comment

Posted by on December 13, 2011 in X++

 

Tags:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
All About Dynamics 365

Dynamics 365, D365, Implementor

syedrafayali

This blog contains information about Functional techniques and guidelines in Microsoft Dynamics AX, including tips, tricks, tutorials, tools and upcoming news enhancement in Microsoft Dynamics Ax

Philippsen's Blog

Everyday findings in my world of .net and related stuff

Microsoft Dynamics AX

A great WordPress.com site

Finite Minds

Adventures in IoT

Dynamics Ax

Technical Knowledge

timsaxblog

A blog about implementing Microsoft Dynamics AX and Dynamics 365 for Operations

Microsoft Dynamics 365 Blog

All Things Dynamics 365, A Blog by sandeep chaudhury

DEVSerra - Dynamics AX development blog

Your official Microsoft Dynamics AX blog.

OrganicAX

Discovering Dynamics

AX

A blog by Hai Nguyen

Learn Dynamics Ax with Johnkrish

Live as if you were to die tomorrow. Learn as if you were to live forever - Mahatma Gandhi ****** The more I learn, the less I know - Albert Einstein

Twisted Untwirled

Just another WordPress.com site

ramdynamicsax

Just another WordPress.com site

guyterry's Dynamics AX blog

Just another Dynamics AX blog

Chaitanya kumar

Happy DAXing...!!! :)

%d bloggers like this: