Corfu Navision 2016, Development Tips, How To, Information, Inventory, Tip & Tricks

How Inventory is Calculated in Navision 2016

Today we will see terms used for Inventory and how Inventory is calculated in Navision.

InvProj-1

You can find details of Inventory on Item Card itself. Also how much Inventory is available or required at different area in ERP.

InvProj-2

If you open Item Availability by Location you will find in more details. When you drilldown you can find in more details from where these figure comes from.

Scheduled Receipts:

Here all the entries from below area is included:

a) Purchase Orders

b) Transfer Orders

c) Firm Planned Production Order

d) Release Production Order

e) Assembly Orders

How Navision calculates?

AvailType::”Scheduled Order Receipt”:
BEGIN
InsertEntry(DATABASE::”Purchase Line“,Item.FIELDNO(“Qty. on Purch. Order”),PurchLine.TABLECAPTION,Item.”Qty. on Purch. Order“);
InsertEntry(DATABASE::”Prod. Order Line“,Item.FIELDNO(“FP Order Receipt (Qty.)”),STRSUBSTNO(Text002,ProdOrderLine.TABLECAPTION),Item.”FP Order Receipt (Qty.)“);
InsertEntry(DATABASE::”Prod. Order Line“,Item.FIELDNO(“Rel. Order Receipt (Qty.)”),STRSUBSTNO(Text003,ProdOrderLine.TABLECAPTION),Item.”Rel. Order Receipt (Qty.)“);
InsertEntry(DATABASE::”Transfer Line“,Item.FIELDNO(“Qty. in Transit”),Item.FIELDCAPTION(“Qty. in Transit”),Item.”Qty. in Transit“);
InsertEntry(DATABASE::”Transfer Line“,Item.FIELDNO(“Trans. Ord. Receipt (Qty.)”),Item.FIELDCAPTION(“Trans. Ord. Receipt (Qty.)”),Item.”Trans. Ord. Receipt (Qty.)“);
InsertEntry(DATABASE::”Sales Line“,0,SalesLine.TABLECAPTION,Item.”Qty. on Sales Return“);
InsertEntry(DATABASE::”Assembly Header“,Item.FIELDNO(“Qty. on Assembly Order”),AssemblyHeader.TABLECAPTION,Item.”Qty. on Assembly Order“);
END;

Planned Receipts:

Here all the entries from below area is included:

a) Planned Production Order

b) Planning Worksheet

c) Requisition Worksheet

How Navision calculates?

AvailType::”Planned Order Receipt”:
BEGIN
InsertEntry(DATABASE::”Requisition Line“,Item.FIELDNO(“Purch. Req. Receipt (Qty.)”),ReqLine.TABLECAPTION,Item.”Purch. Req. Receipt (Qty.)“);
InsertEntry(DATABASE::”Prod. Order Line“,Item.FIELDNO(“Planned Order Receipt (Qty.)”),STRSUBSTNO(Text000,ProdOrderLine.TABLECAPTION),Item.”Planned Order Receipt (Qty.)“);
END;

Gross Requirement:

Here all the entries from below area is included:

a) Sales Order

b) Transfer Order

c) Firm Planned Production Order Components

d) Released Production Order Components

e) Job Planning Lines

f) Service Orders

g) Assembly Orders Components

How Navision calculates?

AvailType::”Gross Requirement”:
BEGIN
InsertEntry(DATABASE::”Sales Line“,Item.FIELDNO(“Qty. on Sales Order”),SalesLine.TABLECAPTION,Item.”Qty. on Sales Order“);
InsertEntry(DATABASE::”Service Line“,Item.FIELDNO(“Qty. on Service Order”),ServLine.TABLECAPTION,Item.”Qty. on Service Order“);
InsertEntry(DATABASE::”Job Planning Line“,Item.FIELDNO(“Qty. on Job Order”),JobPlanningLine.TABLECAPTION,Item.”Qty. on Job Order“);
InsertEntry(DATABASE::”Prod. Order Component“,Item.FIELDNO(“Scheduled Need (Qty.)”),ProdOrderComp.TABLECAPTION,Item.”Scheduled Need (Qty.)“);
InsertEntry(DATABASE::”Planning Component“,Item.FIELDNO(“Planning Issues (Qty.)”),PlanningComponent.TABLECAPTION,Item.”Planning Issues (Qty.)“);
InsertEntry(DATABASE::”Transfer Line“,Item.FIELDNO(“Trans. Ord. Shipment (Qty.)”),Item.FIELDCAPTION(“Trans. Ord. Shipment (Qty.)”),Item.”Trans. Ord. Shipment (Qty.)“);
InsertEntry(DATABASE::”Purchase Line“,0,PurchLine.TABLECAPTION,Item.”Qty. on Purch. Return“);
InsertEntry(DATABASE::”Assembly Line“,Item.FIELDNO(“Qty. on Asm. Component”),AssemblyLine.TABLECAPTION,Item.”Qty. on Asm. Component“);
END;

Planned Order Releases:

How Navision calculates?

AvailType::”Planned Order Release”:
BEGIN
InsertEntry(DATABASE::”Requisition Line“,Item.FIELDNO(“Purch. Req. Release (Qty.)”),ReqLine.TABLECAPTION,Item.”Purch. Req. Release (Qty.)“);
InsertEntry(DATABASE::”Prod. Order Line“,Item.FIELDNO(“Planned Order Release (Qty.)”),STRSUBSTNO(Text001,ProdOrderLine.TABLECAPTION),Item.”Planned Order Release (Qty.)“);
InsertEntry(DATABASE::”Requisition Line“,Item.FIELDNO(“Planning Release (Qty.)”),ReqLine.TABLECAPTION,Item.”Planning Release (Qty.)“);
END;

Finally we can calculate Projected Available Inventory as below formula:

Inventory + Scheduled Receipts + Planned Receipts – Gross Requirement

thats all for today, will come with more information in my upcomming posts.

 

Advertisement
Development Tips, Functional Tips, How To, Maderia, Tip & Tricks

How do I process Sales Return? – In Maderia

We have seen in our previous post the feature where if a posted sales invoice has not yet been paid, then you can use the Correct or Cancel functions on the posted sales invoice to automatically reverse the involved transactions.

There could be the situation where customer wants partial refund or return of sales.

You can create the Credit Memo from the Posted Sales Invoice, which will create the Credit Memo for you and leave to you to modify and post the credit memo.

Most fields on the sales credit memo header are filled with the information from the posted sales invoice. You can edit all the fields, with new information that reflects the return agreement.

You can apply the Customer Entries via selecting the line with the posted sales document that you want to apply the sales credit memo to.

The posted sales documents that you applied the credit memo to are now reversed, and a refund payment can be created for the customer.

The sales credit memo is removed and replaced with a new document in the list of posted sales credit memos.

Let us see how we can achieve this in Madeira.

 

CorrectCancelSalesInvoice-12

Select the Sales Invoice and open it for action.

CorrectCancelSalesInvoice-13

Select Create Corrective Credit Memo.

CorrectCancelSalesInvoice-14

Perform the required correction and choose Apply Entries.

CorrectCancelSalesInvoice-15

Select the document to which you want this Credit Memo to be adjusted.

CorrectCancelSalesInvoice-16

Once Application is done, Post the Credit Memo.

Respond to Yes to post the Credit Memo.

Respond to Yes to Open the posted Credit Memo.

CorrectCancelSalesInvoice-17

This is the posted Credit Memo for the Invoice.

Let us check the Ledger for this Customer:

CorrectCancelSalesInvoice-18

Here you can see the net effect of the Credit Memo on Invoice.

Thats all for this post will come up with more features and details in my upcomming posts.

 

 

Corfu Navision 2016, Development Tips, How To, Information, Instalation & Configuration, Tip & Tricks

How do I translate my ResX Files?

In my earlier post I have given the overview of Managing Multilanguage support in Navision continuing from same today I will discuss about how to translate the resx files for the Languages not available from Microsoft. 

Microsoft Translator for ResX:

To translate resx file you require to download Microsoft Translator for ResX you can use this link to download.

This will help you to translate your required .resx files

Azure Data Market account / Microsoft Translator data service:

You will need an Azure Data Market account, subscribe to Microsoft Translator data service and a register a developer application in order to use the tool.

You can start setting this up here: https://datamarket.azure.com/developer/applications/

Microsoft Translator is a service on the Windows Azure Marketplace that translates text between many languages. This is a billed service that comes with many different pricing plans. For example, one plan allows the translation of 2,000,000 characters per month for free.

PTT-2

Steps to get ready for Translation tool:

  1. Get an account on the Azure Data Market with your Microsoft Live ID.
  2. Login into the Azure Data Market (ADM).
  3. Subscribe to the Microsoft Translator Service
  4. Create an application on top of this service in order to use the service in the ResX Translator tool.
  5. Go the developer application registration
  6. Choose the Register button to create a new application.
  7. Enter your information and choose the Create button.

Make sure you note your Client ID and Client Secret, you will need this if you wish to Translate Resx files using Microsoft Translator Service.

If you remember I have shared the link from where you can download Translation Tool. You will require Customer/Partner Source.

Download the Translation Tool (NAV2016PartnerTranslationsToolkit) and extract the zip file.

Scan the extracted Folder here few important files which will help identifying purpose of these files:

  1. Microsoft.MCSUK.RESXTranslator.exe
  2. Microsoft.MCSUK.RESXTranslator.exe.xml
  3. NAV 2016 Creating Custom Platform Translations.pdf
  4. PartnerTranslations.sln

PTT-3

Each project contains the platform resource files (.resx) for all languages shipped by Microsoft.

The Visual Studio solution file, PartnerTranslations.sln, contains a project for each of the platform assemblies that contain translatable resources. In order to create a custom translation, you add the respective resource files with custom translations to the respective project.

Let us see the directory structure of “NAV2016PartnerTranslationsToolkit\Microsoft.Dynamics.Nav.Language” similar structure is for other projects too.

PTT-4

For detailed help you can refer to “NAV 2016 Creating Custom Platform Translations.pdf” file.

Let’s start with translating our resx files:

Run the “Microsoft.MCSUK.RESXTranslator.exe” Tool

PTT-5

Switch to Advanced Tab.

Enter the Client ID and Client Secret obtained in above step when we registered the Application.

Click on Save.

PTT-6

Switch to Single File Tab.

Browse the .resx file for source language in my case if have selected “Common.Language.Lang.en-US.resx

Translate To choose desired language available from the drop down. In my case I have selected “Hindi”.

Select the Language 3 char code in my case I have selected “hi-IN [HIN] Hindi (India)

Click on Translate Now.

Once resx file is translated you will get the summary of result, click ok to return.

Similarly you translate the rex files for each projects listed above.

 

PTT-7

Post this step you are ready with all of you resx file translated to desired language.

 

Development Tips, Functional Tips, How To, Information, Maderia, Tip & Tricks

How Do I : Setup or Adjust Item Cost in Madeira

 

In this post we will see how we can Setup Adjust Cost and how to Run Manually Item Cost Adjust Batch or Schedule the same.

ItemCost-1

Search the Page Inventory Setup using Search Page in Right top corner of your screen.

Search for Inventory Setup Page.

ItemCost-2

Make Sure Automatic Cost Posting is Setup as required.

Also Setup frequency of Automatic Cost Adjustment.

ItemCost-3

Option Behavior
Never Costs are not adjusted when posting
Day Costs are adjusted if posting occurs within one day from the work date
Week Costs are adjusted if posting occurs within one week from the work date
Month Costs are adjusted if posting occurs within one month from the work date
Quarter Costs are adjusted if posting occurs within one quarter from the work date
Year Costs are adjusted if posting occurs within one year from the work date
Always Costs are always adjusted when posting, irrespective of the posting date

Now we will Run the Adjust cost Item Entries Batch.
ItemCost-4

Apply the desired filter for Item or Category as desired.

Next you can run Immediately or can schedule for later execution.

If you require Immediately choose OK.

If you wish to schedule for Later Run choose Schedule.

ItemCost-5

Enter your Date & Time and click OK.

ItemCost-6

To check the status of the Scheduled Run, Search and open the Page Job Queue Log Entries.

ItemCost-7

You can find the Status of your Scheduled Job for Adjust Cost Entries.

ItemCost-8

It’s easy na.

I will come up with more details in my upcoming posts.

Till then keep Exploring & Learning.

 

 

Development Tips, Functional Tips, How To, Information, Maderia, Tip & Tricks

How do I : Adjust Inventory in Madeira

Do you know, it is very easy to Adjust Inventory in Madeira.

Let us see how this action can be done.

Start with Login to Madeira using your credentials.

InvAdj-1

From Landing page, choose Item from Navigation Bar in Left.

InvAdj-2

 

From the list of Item choose Edit or View to access the Card of selected Item.

InvAdj-3

Now from action choose Adjust Inventory.

InvAdj-4

Enter your New Inventory Value. Like in Below screen I want to Add 50 more Inventory.

I Enter 150 including Existing Inventory in System.

InvAdj-5

Select OK.

Inventory now increases by 50 adding 100 to existing inventory making total of 150 available inventory.

InvAdj-6

We are done with our task, Adjusting Inventory.

I will come with more details in my upcoming posts.

Till then keep exploring and learning.

 

Corfu Navision 2016, Development Tips, Extension Package, How To, Information, Tip & Tricks

How do I: Develop an Extension

You can build extension packages that add functionality to a Microsoft Dynamics NAV deployment.

For Overview, please see my earlier posts Introducing Extensions in Microsoft Dynamics NAV 2016

Like any common functionality you want to roll out to different locations of a same company maintaining Object Set Globally for their Navision deployment.

You can perform conventional Export object and send to different locations, where they import these objects in their databases. Another option is through Extensions. Specially very helpful in Tenant model deployment.

But do the limitations apply as we discussed in my earlier post:

[A] Which Object types you can Include & Restrictions applicable to C/AL code in Extension Packages

[B] Which Properties are Restricted in Extension Packages

Unlike the familiar development and deployment of Microsoft Dynamics NAV functionality, building an extension relies on the exported version of an application to .TXT files.

You can export the application from the development environment, use the development environment commands, or use the Windows PowerShell cmdlet that is available in the Microsoft Dynamics NAV 2016 Development Shell,

Export-NAVApplicationObject.

MS recommend that you create a folder structure that can be leveraged by the cmdlets that you use when you build the extension package. That structure should contain folders for the ORIGINAL object files, MODIFIED object files, and DELTA files. These names match those used as parameters in the application merge utilities.

Recall from my earlier post where we deled with Upgrading the Application Code in Microsoft Dynamics NAV 2016

We used folder structure for placing the objects before we performed action:

“In my example, the UpgradeDemo folder on the C drive contains five folders: ORIGINAL, MODIFIED, TARGET, DELTA, and RESULT. The DELTA and RESULT folders are empty. The ORIGINAL, MODIFIED, and TARGET folders contains one or more text files that contain application objects.”

Similar structure we will be using for creating package. You can follow same for easy reference or you can use your convenient naming convention and structure.

I will come back on this in my future post, what exactly structure I will be using for my walkthrough on Extension.

You can refer to cmdlets we discussed earlier for upgrade and extensions which will be used in rest of the parts of this and upcoming posts while dealing with Extensions.

[A] Helpful PowerShell Commands which you can use for Upgrade Process in Navision 2016

[B] Few Helpful PowerShell Commands which you can use for Upgrade Process in Navision 2016 – Part 2

[C] Useful Windows PowerShell cmdlets for managing Extensions in Dynamics Navision 2016

 

5 Steps To create an extension

  1. Establish the BASE as TXT files.
  • The foundation for your extension is the exported .txt files of the objects you are modifying.
  • You can export just the objects that you want to modify, or you can export the entire Microsoft Dynamics NAV application.
  • In the Microsoft Dynamics NAV 2016 Development Shell, the Export-NAVApplicationObject cmdlet can automate this process or you can use the export functionality in the development environment.
  • The following example uses this cmdlet to export objects to establish the base for the planned modifications.

Export-NAVApplicationObject -Path ORIGINAL -DatabaseName MyDatabase -DatabaseServer MyDatabaseServer

  • Objects must be exported as .TXT files. You cannot build an extension based on a .FOB file.
  • If you use a source control system, you may want to pull the base .TXT files from there.
  1. Create functionality in the development environment.
  • Use the development environment as usual to create new objects or modify ones to the extent your license allows you.
  • Also don’t forget to reference limitations with Extensions Property and Objects which you can include in Extensions, see above provided link for more details.
  • Keep in mind the following rules as discussed earlier:
  • DO NOT make C/AL code modifications
  • DO use subscribing to events to execute code.
  • DO NOT create new or modified XMLPorts, Queries, or Report.
  • DO NOT change restricted page and table properties.
  • In order to get an easy upgrade experience for your extensions, you cannot modify code the way you do in the traditional customization process.
  • Instead, you extend Microsoft Dynamics NAV functionality by subscribing to programming events that are raised either explicitly in code, or implicitly by the platform.
  • Test your application with the extension added.
  1. Export your changed and added application objects to .TXT files.
  • Export all objects that you added or modified to .TXT files.
  • Use the same export cmdlet from step 1 or manually export within the development environment.
  • They must also be exported as .TXT files and should be placed in a separate directory so that the packaging process can be pointed at them.

Export-NAVApplicationObject -Path MODIFIED -DatabaseName MyDatabase -DatabaseServer MyDatabaseServer

  1. Create DELTA files using the Microsoft Dynamics NAV 2016 Development Shell cmdlets.
  • Extension packages are based on application object deltas. Again, you use the application merge utilities in the Microsoft Dynamics NAV 2016 Development Shell to distil the changes in the form of application object differences that are stored in DELTA files.
  • Creating an extension uses many of the same concepts and tools as you know from application object deltas. You use the Compare-NAVApplicationObject cmdlet to create these delta files.

Compare-NAVApplicationObject -OriginalPath ORIGINAL -ModifiedPath MODIFIED -DeltaPath DELTA

Your delta files must be one-to-one with the objects you have added or modified. You cannot include a single merged delta file. If you output your export file as a single file use the Split-NAVAppplicationObjectFile cmdlet to create the individual files.

  1. Build the extension package.

 

I will come up with more details in my upcoming posts on this topic.