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;
}