Codeunit 532 IC Data Exchange Database, source in 29
Source29
src/Layers/W1/BaseApp/Finance/Intercompany/DataExchange/ICDataExchangeDatabase.Codeunit.al511 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Intercompany.DataExchange;
using Microsoft.Bank.BankAccount;
using Microsoft.Finance.GeneralLedger.Setup;
using Microsoft.Foundation.Company;
using Microsoft.Intercompany;
using Microsoft.Intercompany.Comment;
using Microsoft.Intercompany.Dimension;
using Microsoft.Intercompany.GLAccount;
using Microsoft.Intercompany.Inbox;
using Microsoft.Intercompany.Partner;
using Microsoft.Intercompany.Setup;
using System.Telemetry;
using System.Threading;
codeunit 532 "IC Data Exchange Database" implements "IC Data Exchange"
{
Access = Internal;
var
FailedToChangeCompanyErr: Label 'It was not possible to find the %1 of partner %2.', Comment = '%1 = Table caption, %2 = Partner Code';
MissingPermissionToReadTableErr: Label 'You do not have the necessary permissions to access the %1 of partner %2.', Comment = '%1 = Table caption, %2 = Partner Code';
ICPartnerMissingCurrentCompanyErr: Label 'The current company is not registered as a partner in the list of partners of company %1', Comment = '%1 = Partner company name';
PartnerMissingTableSetupErr: Label 'Partner %1 has not completed the information required at table %2 for using intercompany.', Comment = '%1 = Partner code, %2 = Table caption';
ICTransactionAlreadyExistMsg: Label '%1 %2 to IC Partner %3 already exists in the IC inbox of IC Partner %3. IC Partner %3 must complete the line action for transaction %2 in their IC inbox.', Comment = '%1 = Field caption, %2 = field value, %3 = IC Partner code';
JobQueueCategoryCodeTxt: Label 'ICAUTOACC', Locked = true;
AutoAcceptTransactionTxt: Label 'Auto. accept transaction %1 of partner %2 for document %3', Comment = '%1 = Transaction ID, %2 = Partner Code, %3 = Document No.';
ICDataExchangeDatabaseFeatureTelemetryNameTok: Label 'Intercompany Data Exchange Database', Locked = true;
SentTransactionTelemetryTxt: Label 'Transaction sent to IC Partner %1 from source %2.', Comment = '%1 = Target IC Partner Code, %2 = Source IC Partner Code';
procedure GetICPartnerICGLAccount(ICPartner: Record "IC Partner"; var TempICPartnerICGLAccount: Record "IC G/L Account" temporary)
var
ICPartnerICGLAccount: Record "IC G/L Account";
begin
TempICPartnerICGLAccount.Reset();
TempICPartnerICGLAccount.DeleteAll();
if not ICPartnerICGLAccount.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, ICPartnerICGLAccount.TableCaption, ICPartner.Name);
if not ICPartnerICGLAccount.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerICGLAccount.TableCaption, ICPartner.Name);
ICPartnerICGLAccount.ReadIsolation := IsolationLevel::ReadCommitted;
if ICPartnerICGLAccount.IsEmpty() then
exit;
ICPartnerICGLAccount.FindSet();
repeat
TempICPartnerICGLAccount.TransferFields(ICPartnerICGLAccount, true);
TempICPartnerICGLAccount.Insert();
until ICPartnerICGLAccount.Next() = 0;
end;
procedure GetICPartnerICDimension(ICPartner: Record "IC Partner"; var TempICPartnerICDimension: Record "IC Dimension" temporary)
var
ICPartnerICDimension: Record "IC Dimension";
begin
TempICPartnerICDimension.Reset();
TempICPartnerICDimension.DeleteAll();
if not ICPartnerICDimension.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, ICPartnerICDimension.TableCaption, ICPartner.Name);
if not ICPartnerICDimension.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerICDimension.TableCaption, ICPartner.Name);
ICPartnerICDimension.ReadIsolation := IsolationLevel::ReadCommitted;
if ICPartnerICDimension.IsEmpty() then
exit;
ICPartnerICDimension.FindSet();
repeat
TempICPartnerICDimension.TransferFields(ICPartnerICDimension, true);
TempICPartnerICDimension.Insert();
until ICPartnerICDimension.Next() = 0;
end;
procedure GetICPartnerICDimensionValue(ICPartner: Record "IC Partner"; var TempICPartnerICDimensionValue: Record "IC Dimension Value" temporary)
var
ICPartnerICDimensionValue: Record "IC Dimension Value";
begin
TempICPartnerICDimensionValue.Reset();
TempICPartnerICDimensionValue.DeleteAll();
if not ICPartnerICDimensionValue.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, ICPartnerICDimensionValue.TableCaption, ICPartner.Name);
if not ICPartnerICDimensionValue.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerICDimensionValue.TableCaption, ICPartner.Name);
ICPartnerICDimensionValue.ReadIsolation := IsolationLevel::ReadCommitted;
if ICPartnerICDimensionValue.IsEmpty() then
exit;
ICPartnerICDimensionValue.FindSet();
repeat
TempICPartnerICDimensionValue.TransferFields(ICPartnerICDimensionValue, true);
TempICPartnerICDimensionValue.Insert();
until ICPartnerICDimensionValue.Next() = 0;
end;
procedure GetICPartnerFromICPartner(ICPartner: Record "IC Partner"; var TempRegisteredICPartner: Record "IC Partner" temporary)
var
ICSetup: Record "IC Setup";
begin
ICSetup.Get();
GetICPartnerFromICPartner(ICPartner, ICSetup."IC Partner Code", TempRegisteredICPartner);
end;
procedure GetICPartnerFromICPartner(ICPartner: Record "IC Partner"; ICPartnerCode: Code[20]; var TempRegisteredICPartner: Record "IC Partner" temporary)
var
RegisteredICPartner: Record "IC Partner";
begin
if ICPartner."Inbox Type" <> Enum::"IC Partner Inbox Type"::Database then
exit;
TempRegisteredICPartner.Reset();
TempRegisteredICPartner.DeleteAll();
if not RegisteredICPartner.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, RegisteredICPartner.TableCaption, ICPartner.Name);
if not RegisteredICPartner.ReadPermission() then
Error(MissingPermissionToReadTableErr, RegisteredICPartner.TableCaption, ICPartner.Name);
RegisteredICPartner.ReadIsolation := IsolationLevel::ReadCommitted;
if not RegisteredICPartner.Get(ICPartnerCode) then
Error(ICPartnerMissingCurrentCompanyErr, ICPartner."Inbox Details");
TempRegisteredICPartner.TransferFields(RegisteredICPartner, true);
TempRegisteredICPartner.Insert();
end;
procedure GetICPartnerICSetup(ICPartner: Record "IC Partner"; var TempICPartnerICSetup: Record "IC Setup" temporary)
begin
GetICPartnerICSetup(ICPartner."Inbox Details", TempICPartnerICSetup);
end;
procedure GetICPartnerICSetup(ICPartnerName: Text; var TempICPartnerICSetup: Record "IC Setup" temporary)
var
ICPartnerICSetup: Record "IC Setup";
begin
TempICPartnerICSetup.Reset();
TempICPartnerICSetup.DeleteAll();
if not ICPartnerICSetup.ChangeCompany(ICPartnerName) then
Error(FailedToChangeCompanyErr, ICPartnerICSetup.TableCaption, ICPartnerName);
if not ICPartnerICSetup.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerICSetup.TableCaption, ICPartnerName);
ICPartnerICSetup.ReadIsolation := IsolationLevel::ReadCommitted;
if not ICPartnerICSetup.Get() then begin
if System.GuiAllowed() then
Message(PartnerMissingTableSetupErr, ICPartnerName, ICPartnerICSetup.TableCaption);
exit;
end;
TempICPartnerICSetup.TransferFields(ICPartnerICSetup, true);
TempICPartnerICSetup.Insert();
end;
procedure GetICPartnerGeneralLedgerSetup(ICPartner: Record "IC Partner"; var TempICPartnerGeneralLedgerSetup: Record "General Ledger Setup" temporary)
begin
GetICPartnerGeneralLedgerSetup(ICPartner."Inbox Details", TempICPartnerGeneralLedgerSetup);
end;
procedure GetICPartnerGeneralLedgerSetup(ICPartnerName: Text; var TempICPartnerGeneralLedgerSetup: Record "General Ledger Setup" temporary)
var
ICPartnerGeneralLedgerSetup: Record "General Ledger Setup";
begin
TempICPartnerGeneralLedgerSetup.Reset();
TempICPartnerGeneralLedgerSetup.DeleteAll();
if not ICPartnerGeneralLedgerSetup.ChangeCompany(ICPartnerName) then
Error(FailedToChangeCompanyErr, ICPartnerGeneralLedgerSetup.TableCaption, ICPartnerName);
if not ICPartnerGeneralLedgerSetup.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerGeneralLedgerSetup.TableCaption, ICPartnerName);
ICPartnerGeneralLedgerSetup.ReadIsolation := IsolationLevel::ReadCommitted;
if not ICPartnerGeneralLedgerSetup.Get() then begin
if System.GuiAllowed() then
Message(PartnerMissingTableSetupErr, ICPartnerName, ICPartnerGeneralLedgerSetup.TableCaption);
exit;
end;
TempICPartnerGeneralLedgerSetup.TransferFields(ICPartnerGeneralLedgerSetup, true);
TempICPartnerGeneralLedgerSetup.Insert();
end;
procedure GetICPartnerCompanyInformation(ICPartner: Record "IC Partner"; var TempICPartnerCompanyInformation: Record "Company Information" temporary)
begin
GetICPartnerCompanyInformation(ICPartner."Inbox Details", TempICPartnerCompanyInformation);
end;
procedure GetICPartnerCompanyInformation(ICPartnerName: Text; var TempICPartnerCompanyInformation: Record "Company Information" temporary)
var
ICPartnerCompanyInformation: Record "Company Information";
begin
TempICPartnerCompanyInformation.Reset();
TempICPartnerCompanyInformation.DeleteAll();
if not ICPartnerCompanyInformation.ChangeCompany(ICPartnerName) then
Error(FailedToChangeCompanyErr, ICPartnerCompanyInformation.TableCaption, ICPartnerName);
if not ICPartnerCompanyInformation.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerCompanyInformation.TableCaption, ICPartnerName);
ICPartnerCompanyInformation.ReadIsolation := IsolationLevel::ReadCommitted;
if not ICPartnerCompanyInformation.Get() then begin
if System.GuiAllowed() then
Message(PartnerMissingTableSetupErr, ICPartnerName, ICPartnerCompanyInformation.TableCaption);
exit;
end;
TempICPartnerCompanyInformation.TransferFields(ICPartnerCompanyInformation, true);
TempICPartnerCompanyInformation.Insert();
end;
procedure GetICPartnerBankAccount(ICPartner: Record "IC Partner"; var TempICPartnerBankAccount: Record "Bank Account" temporary)
var
ICPartnerBankAccount: Record "Bank Account";
begin
TempICPartnerBankAccount.Reset();
TempICPartnerBankAccount.DeleteAll();
if not ICPartnerBankAccount.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, ICPartnerBankAccount.TableCaption, ICPartner.Name);
if not ICPartnerBankAccount.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerBankAccount.TableCaption, ICPartner.Name);
ICPartnerBankAccount.ReadIsolation := IsolationLevel::ReadCommitted;
if ICPartnerBankAccount.IsEmpty() then
exit;
ICPartnerBankAccount.FindSet();
repeat
TempICPartnerBankAccount.TransferFields(ICPartnerBankAccount, true);
TempICPartnerBankAccount.Insert();
until ICPartnerBankAccount.Next() = 0;
end;
procedure GetICPartnerICInboxTransaction(ICPartner: Record "IC Partner"; var TempICPartnerICInboxTransaction: Record "IC Inbox Transaction" temporary)
var
ICPartnerICInboxTransaction: Record "IC Inbox Transaction";
begin
TempICPartnerICInboxTransaction.Reset();
TempICPartnerICInboxTransaction.DeleteAll();
if not ICPartnerICInboxTransaction.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, ICPartnerICInboxTransaction.TableCaption, ICPartner.Name);
if not ICPartnerICInboxTransaction.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerICInboxTransaction.TableCaption, ICPartner.Name);
ICPartnerICInboxTransaction.ReadIsolation := IsolationLevel::ReadCommitted;
if ICPartnerICInboxTransaction.IsEmpty() then
exit;
ICPartnerICInboxTransaction.FindSet();
repeat
TempICPartnerICInboxTransaction.TransferFields(ICPartnerICInboxTransaction, true);
TempICPartnerICInboxTransaction.Insert();
until ICPartnerICInboxTransaction.Next() = 0;
end;
procedure GetICPartnerHandledICInboxTransaction(ICPartner: Record "IC Partner"; var TempICPartnerHandledICInboxTransaction: Record "Handled IC Inbox Trans." temporary)
var
ICPartnerHandledICInboxTransaction: Record "Handled IC Inbox Trans.";
begin
TempICPartnerHandledICInboxTransaction.Reset();
TempICPartnerHandledICInboxTransaction.DeleteAll();
if not ICPartnerHandledICInboxTransaction.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, ICPartnerHandledICInboxTransaction.TableCaption, ICPartner.Name);
if not ICPartnerHandledICInboxTransaction.ReadPermission() then
Error(MissingPermissionToReadTableErr, ICPartnerHandledICInboxTransaction.TableCaption, ICPartner.Name);
ICPartnerHandledICInboxTransaction.ReadIsolation := IsolationLevel::ReadCommitted;
if ICPartnerHandledICInboxTransaction.IsEmpty() then
exit;
ICPartnerHandledICInboxTransaction.FindSet();
repeat
TempICPartnerHandledICInboxTransaction.TransferFields(ICPartnerHandledICInboxTransaction, true);
TempICPartnerHandledICInboxTransaction.Insert();
until ICPartnerHandledICInboxTransaction.Next() = 0;
end;
procedure PostICTransactionToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxTransaction: Record "IC Inbox Transaction" temporary)
var
PartnerInboxTransaction: Record "IC Inbox Transaction";
FeatureTelemetry: Codeunit "Feature Telemetry";
ICMapping: Codeunit "IC Mapping";
CustomDimensions: Dictionary of [Text, Text];
begin
if not PartnerInboxTransaction.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerInboxTransaction.TableCaption, ICPartner.Name);
if not PartnerInboxTransaction.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerInboxTransaction.TableCaption, ICPartner.Name);
if not TempICPartnerICInboxTransaction.IsEmpty() then begin
TempICPartnerICInboxTransaction.FindSet();
repeat
CustomDimensions.Add('Transaction Details', StrSubstNo(SentTransactionTelemetryTxt, ICPartner.Code, TempICPartnerICInboxTransaction."IC Partner Code"));
FeatureTelemetry.LogUsage('0000LKS', ICMapping.GetFeatureTelemetryName(), ICDataExchangeDatabaseFeatureTelemetryNameTok, CustomDimensions);
PartnerInboxTransaction.TransferFields(TempICPartnerICInboxTransaction, true);
if not PartnerInboxTransaction.Insert() then
Error(
ICTransactionAlreadyExistMsg, PartnerInboxTransaction.FieldCaption("Transaction No."),
PartnerInboxTransaction."Transaction No.",
PartnerInboxTransaction."IC Partner Code");
until TempICPartnerICInboxTransaction.Next() = 0;
end;
end;
procedure PostICJournalLineToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxJnlLine: Record "IC Inbox Jnl. Line" temporary)
var
PartnerInboxJnlLine: Record "IC Inbox Jnl. Line";
GLSetup: Record "General Ledger Setup";
begin
GLSetup.Get();
if not PartnerInboxJnlLine.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerInboxJnlLine.TableCaption, ICPartner.Name);
if not PartnerInboxJnlLine.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerInboxJnlLine.TableCaption, ICPartner.Name);
if not TempICPartnerICInboxJnlLine.IsEmpty() then begin
TempICPartnerICInboxJnlLine.FindSet();
repeat
PartnerInboxJnlLine.TransferFields(TempICPartnerICInboxJnlLine, true);
if PartnerInboxJnlLine."Currency Code" = '' then
PartnerInboxJnlLine."Currency Code" := GLSetup."LCY Code";
if PartnerInboxJnlLine."Currency Code" = ICPartner."Currency Code" then
PartnerInboxJnlLine."Currency Code" := '';
PartnerInboxJnlLine.Insert();
until TempICPartnerICInboxJnlLine.Next() = 0;
end;
end;
procedure PostICPurchaseHeaderToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxPurchaseHeader: Record "IC Inbox Purchase Header" temporary; var RegisteredPartner: Record "IC Partner" temporary)
var
PartnerInboxPurchHeader: Record "IC Inbox Purchase Header";
begin
if not PartnerInboxPurchHeader.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerInboxPurchHeader.TableCaption, ICPartner.Name);
if not PartnerInboxPurchHeader.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerInboxPurchHeader.TableCaption, ICPartner.Name);
if not TempICPartnerICInboxPurchaseHeader.IsEmpty() then begin
TempICPartnerICInboxPurchaseHeader.FindSet();
repeat
PartnerInboxPurchHeader.TransferFields(TempICPartnerICInboxPurchaseHeader, true);
PartnerInboxPurchHeader."Buy-from Vendor No." := RegisteredPartner."Vendor No.";
PartnerInboxPurchHeader."Pay-to Vendor No." := RegisteredPartner."Vendor No.";
PartnerInboxPurchHeader.Insert();
until TempICPartnerICInboxPurchaseHeader.Next() = 0;
end;
end;
procedure PostICPurchaseLineToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxPurchaseLine: Record "IC Inbox Purchase Line" temporary)
var
PartnerInboxPurchLine: Record "IC Inbox Purchase Line";
begin
if not PartnerInboxPurchLine.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerInboxPurchLine.TableCaption, ICPartner.Name);
if not PartnerInboxPurchLine.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerInboxPurchLine.TableCaption, ICPartner.Name);
if not TempICPartnerICInboxPurchaseLine.IsEmpty() then begin
TempICPartnerICInboxPurchaseLine.FindSet();
repeat
PartnerInboxPurchLine.TransferFields(TempICPartnerICInboxPurchaseLine, true);
PartnerInboxPurchLine.Insert();
until TempICPartnerICInboxPurchaseLine.Next() = 0;
end;
end;
procedure PostICSalesHeaderToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxSalesHeader: Record "IC Inbox Sales Header" temporary; var RegisteredPartner: Record "IC Partner" temporary)
var
PartnerInboxSalesHeader: Record "IC Inbox Sales Header";
begin
if not PartnerInboxSalesHeader.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerInboxSalesHeader.TableCaption, ICPartner.Name);
if not PartnerInboxSalesHeader.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerInboxSalesHeader.TableCaption, ICPartner.Name);
if not TempICPartnerICInboxSalesHeader.IsEmpty() then begin
TempICPartnerICInboxSalesHeader.FindSet();
repeat
PartnerInboxSalesHeader.TransferFields(TempICPartnerICInboxSalesHeader, true);
PartnerInboxSalesHeader."Sell-to Customer No." := RegisteredPartner."Customer No.";
PartnerInboxSalesHeader."Bill-to Customer No." := RegisteredPartner."Customer No.";
PartnerInboxSalesHeader.Insert();
until TempICPartnerICInboxSalesHeader.Next() = 0;
end;
end;
procedure PostICSalesLineToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxSalesLine: Record "IC Inbox Sales Line" temporary)
var
PartnerInboxSalesLine: Record "IC Inbox Sales Line";
begin
if not PartnerInboxSalesLine.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerInboxSalesLine.TableCaption, ICPartner.Name);
if not PartnerInboxSalesLine.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerInboxSalesLine.TableCaption, ICPartner.Name);
if not TempICPartnerICInboxSalesLine.IsEmpty() then begin
TempICPartnerICInboxSalesLine.FindSet();
repeat
PartnerInboxSalesLine.TransferFields(TempICPartnerICInboxSalesLine, true);
PartnerInboxSalesLine.Insert();
until TempICPartnerICInboxSalesLine.Next() = 0;
end;
end;
procedure PostICJournalLineDimensionToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxOutboxJnlLineDim: Record "IC Inbox/Outbox Jnl. Line Dim." temporary)
var
PartnerInboxOutboxJnlLineDim: Record "IC Inbox/Outbox Jnl. Line Dim.";
begin
if not PartnerInboxOutboxJnlLineDim.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerInboxOutboxJnlLineDim.TableCaption, ICPartner.Name);
if not PartnerInboxOutboxJnlLineDim.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerInboxOutboxJnlLineDim.TableCaption, ICPartner.Name);
if not TempICPartnerICInboxOutboxJnlLineDim.IsEmpty() then begin
TempICPartnerICInboxOutboxJnlLineDim.FindSet();
repeat
PartnerInboxOutboxJnlLineDim.TransferFields(TempICPartnerICInboxOutboxJnlLineDim, true);
PartnerInboxOutboxJnlLineDim.Insert();
until TempICPartnerICInboxOutboxJnlLineDim.Next() = 0;
end;
end;
procedure PostICDocumentDimensionToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICDocDim: Record "IC Document Dimension" temporary)
var
PartnerICDocDim: Record "IC Document Dimension";
begin
if not PartnerICDocDim.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerICDocDim.TableCaption, ICPartner.Name);
if not PartnerICDocDim.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerICDocDim.TableCaption, ICPartner.Name);
if not TempICPartnerICDocDim.IsEmpty() then begin
TempICPartnerICDocDim.FindSet();
repeat
PartnerICDocDim.TransferFields(TempICPartnerICDocDim, true);
PartnerICDocDim.Insert();
until TempICPartnerICDocDim.Next() = 0;
end;
end;
procedure PostICCommentLineToICPartnerInbox(ICPartner: Record "IC Partner"; var TempICPartnerICInboxCommentLine: Record "IC Comment Line" temporary)
var
PartnerICCommentLine: Record "IC Comment Line";
begin
if not PartnerICCommentLine.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, PartnerICCommentLine.TableCaption, ICPartner.Name);
if not PartnerICCommentLine.ReadPermission() then
Error(MissingPermissionToReadTableErr, PartnerICCommentLine.TableCaption, ICPartner.Name);
if not TempICPartnerICInboxCommentLine.IsEmpty() then begin
TempICPartnerICInboxCommentLine.FindSet();
repeat
PartnerICCommentLine.TransferFields(TempICPartnerICInboxCommentLine, true);
PartnerICCommentLine.Insert();
until TempICPartnerICInboxCommentLine.Next() = 0;
end;
end;
procedure EnqueueAutoAcceptedICInboxTransaction(ICPartner: Record "IC Partner"; ICInboxTransaction: Record "IC Inbox Transaction")
var
JobQueueEntry: Record "Job Queue Entry";
begin
if not JobQueueEntry.ChangeCompany(ICPartner."Inbox Details") then
Error(FailedToChangeCompanyErr, JobQueueEntry.TableCaption, ICPartner.Name);
if not JobQueueEntry.ReadPermission() then
Error(MissingPermissionToReadTableErr, JobQueueEntry.TableCaption, ICPartner.Name);
JobQueueEntry."Object Type to Run" := JobQueueEntry."Object Type to Run"::Codeunit;
JobQueueEntry."Object ID to Run" := Codeunit::"IC Inbox Outbox Subs. Runner";
JobQueueEntry."Maximum No. of Attempts to Run" := 3;
JobQueueEntry."Recurring Job" := false;
JobQueueEntry."Record ID to Process" := ICInboxTransaction.RecordId;
JobQueueEntry."Job Queue Category Code" := JobQueueCategoryCodeTxt;
JobQueueEntry."Run in User Session" := false;
JobQueueEntry.Status := JobQueueEntry.Status::Ready;
JobQueueEntry.Description := StrSubstNo(AutoAcceptTransactionTxt, ICInboxTransaction."Transaction No.", ICInboxTransaction."IC Partner Code", ICInboxTransaction."Document No.");
JobQueueEntry.Insert(true);
CODEUNIT.Run(CODEUNIT::"Job Queue - Enqueue", JobQueueEntry);
end;
}