Wednesday, February 27, 2008

Transferring New Items Between Business Partners In SCM

Continuing the previous topic about sending outbounds documents from one base to another I found out an interesting point concerning the transferring information on new items between two or more bases.

Say, we have two business partners which are called Customer and Vendor. The SCM between them function very simply.

When Customer wants to get some needed goods purchase orders (Purchase Requisitions) with appropriate positions (Items) are sent to Vendor.

But if Vendor start producing some new goods how can these positions (Items) be sent to Customer in order to synchronize their common space of Items table?

Monday, February 25, 2008

Microsoft Dynamics AX AIF: Sending Outbound Documents Automatically

there are questions only but I hope there will be answers soon.

Preamble

Having set up AIF based on the SCM scenario from Microsoft site I got a few questions regarding the following scheme of SCM process:

Customer GTM (Global Trading Company) sends Purchase Requisition to vendor DUO (DUO Company) and after having it posted gets Purchase Invoice.

gtm->PurchaseOrder->AIF->PurchaseRequisition->duo->SalesOrder
duo->SalesInvoice->AIF->SalesInvoice->gtm->PurchaseInvoice

1. Sending Outbound Documents Automatically

MSDN Library How to send and receive documents electronically tells us there are two ways of sending documents either automatically or manually by using Send Electronically button on appropriate forms, e.g. for Purchase Order it is

Purchase requisition

1. Click Accounts payable > Inquiries > Journals > Purchase order.
2. Click Send electronically, and then click Original or Copy.


and it really works, and in Queue Manager we can see the message ready for outbound sending.

What really intrigues me it is the other option which allows to send it automatically.

As far as I can see everything is set up correctly since the same document after posting was sent electronically. I mean all settings of Endpoints and others are correct. Using batch gives the same result - Purchase Order is printed but not sent to Queue Manager.

What should I do in order to initiate the process automatically?

Upt.: Solution

I guess many questions happen to arise to me due to lack of experience in the system and patience to read the manual attentively. But anyway, the way to do this is the following.

First of all, read it:

The record must be updated with the print option, and there is no method for sending the document in the posting form.

If you want to send a document electronically, the Print check box on the corresponding print form must be selected, and the option to print to the screen must not be selected. Otherwise, the record will be posted and the document will be displayed on the screen, but it will not be sent electronically to the endpoint.


In other words we have at least three options to send our outbound documents:

  • manually, after posting (see the above);
  • automatically, during the posting choosing Print requisition and Use print management destination if those were set up in advance or just pressing Printer setup to choose any destination but Screen;
  • it is also possible to send that later by means of batch processing.

Purchase Order Posting Form
What regards Print management destination we can set the parameters for receiving company DUO in order to send purchase orders to this vendor always automatically.

Accounts Payable>Vendors>Duo Engineering and Trade>Setup>Print Management

Print Management Form

In the example we just to keep all purchase orders sent automatically in Print Archive (Basics>Setup>Inquiries>Print Archive).

Finally, I do not understand why it is important not to send automatically outbound documents when Screen option is chosen but just in case this is the place in the code that should be changed to pass by this restriction:

\Classes\PurchFormLetter_PurchOrder\sendAsXML
protected void sendAsXML()
{
boolean newLine;

if (new PrintJobSettings(printerSettingsFormletter, true).getTarget() != PrintMedium::Screen && !this.proforma())
{
newLine = journalList.first(vendPurchOrderJour);
while (newLine)
{
vendPurchOrderJour.sendElectronically(XMLDocPurpose::Original);
newLine = journalList.next(vendPurchOrderJour);
}
}
}

Thursday, February 21, 2008

the goal

Since I began learning MS Dynamics AX and more particularly AIF (Application Integration Framework) module which was firstly provided in version 4.0 I decided to create this blog to keep in memory most interesting points, issues and maybe successful solutions or workarounds.

Hope it will be useful for myself and others who are going to step in this path as well.