Navision. Sales Header 0 does not exist NAV 4.0 SP3
Problem Description
When showing an item or item list in TradePoint you'll get Sales Header 0 does not exist.
This is due to the new Intercompany function in Navision 4.0 SP3
Solution
Add one global variable called "Running NAS" boolean to table 37 Sales Line.
Add two functions to Table 37 Sales Line
RunningNas(runNas : Boolen)
"Running NAS" := runNas;
IsNasRunning() isNas : Boolean
EXIT("Running NAS");
Change function No. - OnValidate() in Table 37 Sales Line
CreateDim(
DimMgt.TypeToTableID3(Type),"No.",
DATABASE::Job,"Job No.",
DATABASE::"Responsibility Center","Responsibility Center");
GetItemCrossRef(FIELDNO("No."));
SalesHeader.GET("Document Type","Document No.");
IF SalesHeader."Bill-to IC Partner Code" <> '' THEN
CASE Type OF
Type::" ",Type::"Charge (Item)":
BEGIN
"IC Partner Ref. Type" := Type;
"IC Partner Reference" :="No.";
END;
Type::"G/L Account":
BEGIN
"IC Partner Ref. Type" := Type;
"IC Partner Reference" := GLAcc."Default IC Partner G/L Acc. No";
END;
Type::Item:
BEGIN
ICPartner.GET(SalesHeader."Sell-to IC Partner Code");
CASE ICPartner."Outbound Sales Item No. Type" OF
ICPartner."Outbound Sales Item No. Type"::"Common Item No.":
VALIDATE("IC Partner Ref. Type","IC Partner Ref. Type"::"Common Item No.");
ICPartner."Outbound Sales Item No. Type"::"Internal No.":
BEGIN
"IC Partner Ref. Type" := "IC Partner Ref. Type"::Item;
"IC Partner Reference" := "No.";
END;
ICPartner."Outbound Sales Item No. Type"::"Cross Reference":
BEGIN
VALIDATE("IC Partner Ref. Type","IC Partner Ref. Type"::"Cross Reference");
ItemCrossReference.SETRANGE(ItemCrossReference."Cross-Reference Type",
ItemCrossReference."Cross-Reference Type"::Customer);
ItemCrossReference.SETRANGE(ItemCrossReference."Cross-Reference Type No.",
"Sell-to Customer No.");
ItemCrossReference.SETRANGE("Item No.","No.");
IF ItemCrossReference.FIND('-') THEN
"IC Partner Reference" := ItemCrossReference."Cross-Reference No.";
END;
END;
END;
Type::"Fixed Asset":
BEGIN
"IC Partner Ref. Type" := "IC Partner Ref. Type"::" ";
"IC Partner Reference" := '';
END;
Type::Resource:
BEGIN
Resource.GET("No.");
"IC Partner Ref. Type" := "IC Partner Ref. Type"::"G/L Account";
"IC Partner Reference" := Resource."IC Partner Purch. G/L Acc. No.";
END;
END;
END; //---- Add this row
Change function GetCustomerItemPriceStandard Code Unit TradePoint Calculate 6041692
RunningNAS(TRUE); //---Add this row
VALIDATE(Type,Type::Item);
VALIDATE("No.",itemNo);
VALIDATE(Quantity, quantityIn);
END;
TempSalesLine.INSERT;
Change function GetOrder Code Unit TradePoint Calculate 6041692
RunningNAS(TRUE); //---Add this row
VALIDATE(Type,Type::Item);
VALIDATE("No.",itemNo);
"Description 2" := note;
INSERT;
Published by: Björn Sundström / scriptserver.com
