Zum Inhalt

Multiship Multinav Mail Bridge Integrationsmöglichkeiten

Integrationsmöglichkeiten zur Multiship Multinav Mail Bridge App.

Mit der Multiship Multinav Mail Bridge App können Versandbenachrichtigungen beim Multiship Tagesabschluss versendet werden.

Mehr zur Einrichtung und Anwendung hier: Comsol Multinav Mail Integration CMS Bridge für Version 5 (BC 22+)

Wenn Anpassungen am Versand der Versandbenachrichtigungen benötigt werden, dann können Sie in Ihrem Projekt die folgende Codeunit anlegen. Dort können Sie dann die Anpassungen vornehmen. Anschließend muss diese neue Codeunit dann in Multiship in den Versandlisten bei "Codeunit Mail Integration" eingetragen werden.
Das ersetzt die Codeunit "CMNM Multiship Integration" aus dem Multiship Multinav Mail Bridge Standard.

codeunit 50000 "CMS Integration Muster"
{
    TableNo = "CMS Posted Shpt Orderheader";

    var
        CMNMIntegrationInterface: Codeunit "CMNM Integration Interface";
        CMNMMultishipIntegration: Codeunit "CMNM Multiship Integration";
        CMNMRecipientDispatchTypeEnum: Enum "CMNM Recipient Dispatch Type";
        CMNMEntryDetailTypeEnum: Enum "CMNM Entry Detail Type";
        CMNMDispatchTypeEnum: Enum "CMNM Dispatch Type";

    trigger OnRun()
    var
        lShipList: Record "CMS Shipment Lists";
        lAgentTemplateSetup: Record "CMNM Multiship Integration";
        lRecipient: Record "CMNM Recipient";
        lRecRef: RecordRef;
        lEntryNo: Integer;
        lMailsFound: Boolean;
        RecipientMail: Text[80];
        SourceNo: Code[20];
    begin

        // Versandbenachrichtigungen bei Tagesabschluss

        if Rec.FindFirst() then
            if lShipList.Get(Rec.Listnumbercode) then
                repeat
                    Clear(lMailsFound);
                    Clear(RecipientMail);
                    Clear(SourceNo);
                    if CMNMMultishipIntegration.GetIntegrationSetup(lAgentTemplateSetup, Rec."Shipping Agent No.", Rec."Service No.") then
                        if (lAgentTemplateSetup.Enabled) and
                                ((lShipList."Daily Consolidationtype" = 'T') or
                                ((lShipList."Daily Consolidationtype" <> 'T') and (lAgentTemplateSetup."Reprint allowed"))) then begin

                            if lAgentTemplateSetup."Check Document Type Recipients" <> '' then

                                lMailsFound := lRecipient.HasRecipientForDocType(lAgentTemplateSetup."Recipient Source Type", Rec."Source No.",
                                                                                    lAgentTemplateSetup."Check Document Type Recipients", 0, 0);
                                lMailsFound := CMNMIntegrationInterface.CMNMRecipient_HasRecipientForDocType(lRecipient,
                                                                                                            lAgentTemplateSetup."Recipient Source Type",
                                                                                                            Rec."Source No.",
                                                                                                            lAgentTemplateSetup."Check Document Type Recipients",
                                                                                                            CMNMEntryDetailTypeEnum::"To",
                                                                                                            CMNMRecipientDispatchTypeEnum::"E-Mail")


                            else begin
                                //neues Feld - Vorlagen Adressen nutzen

                                case lAgentTemplateSetup."Recipient identification type" of
                                    lAgentTemplateSetup."Recipient identification type"::"Ship-to-Code":
                                        RecipientMail := CMNMMultishipIntegration.GetShipToCodeRecipient(Rec);

                                    lAgentTemplateSetup."Recipient identification type"::"Template Recipient":
                                        lMailsFound := CMNMMultishipIntegration.CheckTemplateRecipients(lAgentTemplateSetup."eMail Template", Rec);
                                    lAgentTemplateSetup."Recipient identification type"::" ":
                                        lMailsFound := true;                                                                        
                                end;

                                //Alternativer Weg
                                if lAgentTemplateSetup."Alternative via Source No." and (not lMailsFound) then
                                    RecipientMail := CMNMMultishipIntegration.GetSourceNoRecipient(Rec, lAgentTemplateSetup."Recipient Source Type", SourceNo);

                                if RecipientMail <> '' then
                                    lMailsFound := true;
                            end;


                            if lMailsFound then begin
                                lRecRef.GetTable(Rec);
                                lEntryNo := CMNMIntegrationInterface.CMNMManagement_CreateEntry(lAgentTemplateSetup."eMail Template", lRecRef.RecordId, CMNMDispatchTypeEnum::Smtp, true);

                                if lEntryNo > 0 then begin

                                    // Mailadresse aus Ship-to-code und Kontakt/Debitor/Kreditor hinzufuegen (An)
                                    if RecipientMail <> '' then
                                        CMNMIntegrationInterface.CMNMManagement_AddAddressToEntry(lEntryNo, CMNMEntryDetailTypeEnum::"To", RecipientMail);

                                    // Tracking Link
                                    if lAgentTemplateSetup."Code Trackinglink" <> '' then
                                        CMNMMultishipIntegration.CreateTrackinglinks(lEntryNo, Rec, '', lAgentTemplateSetup."Code Trackinglink");

                                    //Lieferadresse
                                    if lAgentTemplateSetup."Code Ship To Address" <> '' then
                                        CMNMMultishipIntegration.CreateShipToAddress(lEntryNo, Rec, '', lAgentTemplateSetup."Code Ship To Address");

                                    CMNMIntegrationInterface.CMNMManagement_ReleaseEntry(lEntryNo);
                                end;
                            end;
                        end;
                until Rec.Next() = 0;
    end;
}