Search the site

 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."));
GetDefaultBin;
IF NOT IsNasRunning() THEN  BEGIN  //---- Add this row       
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


    "Document No." := TempSalesHeader."No.";
    RunningNAS(TRUE); //---Add this row
    VALIDATE(Type,Type::Item);
    VALIDATE("No.",itemNo);
    "Description 2" := note;
    INSERT;


 


Published by: Björn Sundström / scriptserver.com