Modify function in Existing Standard Codeunit 81 "Sales-Post (Yes/No)" in AL.

Ghizlane
Ghizlane Member Posts: 45
edited 2019-04-08 in NAV Three Tier
Hi All!
Can you please advice how to change/remove code from default codeunit .
let say for my example if i want to remove invoice and ship from codeunit 81 "Sales-Post (Yes/No)" !
Can you please advice how to achieve this from AL ? (Business central)

csoli73nc20q.png

Best Answers

  • Ghizlane
    Ghizlane Member Posts: 45
    Answer ✓
    I change the variables as parameters and it does work :D:)
    tybcvfzzzota.png

    urz8dow3pgp2.png

    But I don't understand why it does work even if the functions doesn't have the same name as codeunit 81(standard) (ConfirmPost;MyConfirmPost)

Answers

  • SanderDk
    SanderDk Member Posts: 507
    Is you run the eventrecord page and start recording you can see which event you can hook into..
    Or read the code in C/Side
    For help, do not use PM, use forum instead, perhaps other people have the same question, or better answers.
  • Duikmeester
    Duikmeester Member Posts: 309
    Create a subscriber on Codeunit 81 OnBeforeConfirmSalesPost which has the parameters:
    VAR SalesHeader : Record "Sales Header" <= Set SalesHeader.Ship := TRUE and SalesHeader.Invoice := TRUE;
    VAR HideDialog : Boolean <= Set HideDialog := TRUE;
    VAR IsHandled : Boolean <= Set IsHandled := TRUE;
  • Ghizlane
    Ghizlane Member Posts: 45
    Hi Dukmeester
    Even if I add this parametres I still have the same dialog

    0kn67xf61tn5.png

    yuh9cb2a9j9v.png

  • Ghizlane
    Ghizlane Member Posts: 45
    Hi SanderDk,
    I know that I should modify OnBeforeConfirmSalesPost event on Codeunit 81, but I don't know how I can do it .
    can you please advice me?
  • TallyHo
    TallyHo Member Posts: 417
    edited 2019-04-09
    You should add SalesHeader, HideDialog, and so on (check OnBeforeConfirmSalesPost parameters in CU81) as parameters of your Eventsubscriber. And even then, you will only be able to skip the posting, skip the dialog, or fill the default option of the dialog. There will be three options on it if it is shown, I don't see how to change that using AL code. That being said.. set IsHandled to true, and write your own "CU81" that's probably the way to go now.
  • Ghizlane
    Ghizlane Member Posts: 45
    as you know in business central i can't modify on standard code and there isn't a way to create an extension of codeunit
    the solution is created eventsubscriber .
    I try to create it but I don't know how can I acces to function on standard codeunit and modify it .
    I wanna to remove option ship and invoice
    if you have any idea would you help me .
    thnx
  • Duikmeester
    Duikmeester Member Posts: 309
    edited 2019-04-09
    You defined the SalesHeader, HideDialog, IsHandled variables as locals instead of parameters.

    os0wrmrf5ela.png

    All as VAR ofcourse.
  • Ghizlane
    Ghizlane Member Posts: 45
    I try it but I get the same dialog box .
  • Duikmeester
    Duikmeester Member Posts: 309
    :s if you used VAR SalesHeader;VAR HideDialog;VAR IsHandled then I have no clue why it would not work. Can only think the extension was not properly activated or something. Run with debug and put a breakpoint on the first line in the extension.
  • TallyHo
    TallyHo Member Posts: 417
    edited 2019-04-09
    If you run it with IsHandled := true, nothing wil happen, CU81 is exited.
    If you run it with HideDialog := true, no dialog wil appear.
    You cannot change the appearance of dialog with this.
    So, set Ishandled to true, and write own code. This is the only way to change appearance.
  • MesutG
    MesutG Member Posts: 19
    Please try the my code

    70xv38ixy26c.png
  • Ghizlane
    Ghizlane Member Posts: 45
    edited 2019-04-10
    Hi MesutG,
    I try the code that you write me,
    o7w0uk4f56ok.png

    zqre0izeby6d.png

    1l8j98py2cjc.png

    this is result ,
    it showed two dialog box.
    it's possible hide the dialog box that contain (ship invoice ship and invoice)??

    best regards


  • kriki
    kriki Member, Moderator Posts: 9,121
    [Topic moved from 'NAV Courses, Exams & Certification' forum to 'NAV Three Tier' forum]

    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • Ghizlane
    Ghizlane Member Posts: 45
    Answer ✓
    I change the variables as parameters and it does work :D:)
    tybcvfzzzota.png

    urz8dow3pgp2.png

    But I don't understand why it does work even if the functions doesn't have the same name as codeunit 81(standard) (ConfirmPost;MyConfirmPost)