Table 5065 Interaction Log Entry
- App
- Base Application
- Namespace
- Microsoft.CRM.Interaction
- Versions
- 17-28
Fields, 45Keys, 18Procedures, 14Events, 10
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al953 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.CRM.Interaction;
using Microsoft.CRM.Campaign;
using Microsoft.CRM.Contact;
using Microsoft.CRM.Opportunity;
using Microsoft.CRM.Segment;
using Microsoft.CRM.Task;
using Microsoft.CRM.Team;
using Microsoft.Foundation.NoSeries;
using Microsoft.Purchases.Archive;
using Microsoft.Purchases.Document;
using Microsoft.Purchases.History;
using Microsoft.Sales.Archive;
using Microsoft.Sales.Document;
using Microsoft.Sales.FinanceCharge;
using Microsoft.Sales.History;
using Microsoft.Sales.Reminder;
using Microsoft.Utilities;
using System.Globalization;
using System.Integration;
using System.Security.AccessControl;
table 5065 "Interaction Log Entry"
{
Caption = 'Interaction Log Entry';
DataClassification = CustomerContent;
DrillDownPageID = "Interaction Log Entries";
LookupPageID = "Interaction Log Entries";
ReplicateData = true;
Permissions = tabledata "Interaction Log Entry" = rimd,
tabledata "Inter. Log Entry Comment Line" = rd;
fields
{
field(1; "Entry No."; Integer)
{
Caption = 'Entry No.';
ToolTip = 'Specifies the number of the entry, as assigned from the specified number series when the entry was created.';
}
field(2; "Contact No."; Code[20])
{
Caption = 'Contact No.';
ToolTip = 'Specifies the number of the contact involved in this interaction. This field is not editable.';
TableRelation = Contact;
}
field(3; "Contact Company No."; Code[20])
{
Caption = 'Contact Company No.';
ToolTip = 'Specifies the number of the contact company.';
TableRelation = Contact where(Type = const(Company));
}
field(4; Date; Date)
{
Caption = 'Date';
ToolTip = 'Specifies the date that you have entered in the Date field in the Create Interaction wizard or the Segment window when you created the interaction. The field is not editable.';
}
field(5; Description; Text[100])
{
Caption = 'Description';
ToolTip = 'Specifies the description of the interaction.';
}
field(6; "Information Flow"; Option)
{
Caption = 'Information Flow';
ToolTip = 'Specifies the direction of information flow recorded by the interaction. There are two options: Outbound (the information was received by your contact) and Inbound (the information was received by your company).';
OptionCaption = ' ,Outbound,Inbound';
OptionMembers = " ",Outbound,Inbound;
}
field(7; "Initiated By"; Option)
{
Caption = 'Initiated By';
ToolTip = 'Specifies who initiated the interaction. There are two options: Us (the interaction was initiated by your company) and Them (the interaction was initiated by your contact).';
OptionCaption = ' ,Us,Them';
OptionMembers = " ",Us,Them;
}
field(8; "Attachment No."; Integer)
{
Caption = 'Attachment No.';
TableRelation = Attachment;
}
field(9; "Cost (LCY)"; Decimal)
{
AutoFormatExpression = '';
AutoFormatType = 1;
Caption = 'Cost (LCY)';
Editable = false;
}
field(10; "Duration (Min.)"; Decimal)
{
AutoFormatType = 0;
Caption = 'Duration (Min.)';
DecimalPlaces = 0 : 0;
Editable = false;
}
field(11; "User ID"; Code[50])
{
Caption = 'User ID';
ToolTip = 'Specifies the ID of the user who logged this entry. This field is not editable.';
DataClassification = EndUserIdentifiableInformation;
TableRelation = User."User Name";
}
field(12; "Interaction Group Code"; Code[10])
{
Caption = 'Interaction Group Code';
ToolTip = 'Specifies the code of the interaction group used to create this interaction. This field is not editable.';
TableRelation = "Interaction Group";
}
field(13; "Interaction Template Code"; Code[10])
{
Caption = 'Interaction Template Code';
ToolTip = 'Specifies the code for the interaction template used to create the interaction. This field is not editable.';
TableRelation = "Interaction Template";
}
field(14; "Campaign No."; Code[20])
{
Caption = 'Campaign No.';
ToolTip = 'Specifies the number of the campaign (if any) to which the interaction is linked. This field is not editable.';
TableRelation = Campaign;
}
field(15; "Campaign Entry No."; Integer)
{
Caption = 'Campaign Entry No.';
ToolTip = 'Specifies the number of the campaign entry to which the interaction log entry is linked.';
TableRelation = "Campaign Entry" where("Campaign No." = field("Campaign No."));
}
field(16; "Campaign Response"; Boolean)
{
Caption = 'Campaign Response';
ToolTip = 'Specifies whether the interaction records a response to a campaign.';
}
field(17; "Campaign Target"; Boolean)
{
Caption = 'Campaign Target';
ToolTip = 'Specifies whether the interaction is applied to contacts that are part of the campaign target. This field is not editable.';
}
field(18; "Segment No."; Code[20])
{
Caption = 'Segment No.';
ToolTip = 'Specifies the number of the segment. This field is valid only for interactions created for segments, and is not editable.';
}
field(19; Evaluation; Enum "Interaction Evaluation")
{
Caption = 'Evaluation';
ToolTip = 'Specifies the evaluation of the interaction. There are five options: Very Positive, Positive, Neutral, Negative, and Very Negative.';
Editable = false;
}
field(20; "Time of Interaction"; Time)
{
Caption = 'Time of Interaction';
ToolTip = 'Specifies the time when the interaction was created. This field is not editable.';
}
field(21; "Attempt Failed"; Boolean)
{
Caption = 'Attempt Failed';
ToolTip = 'Specifies whether the interaction records an failed attempt to reach the contact. This field is not editable.';
}
field(23; "To-do No."; Code[20])
{
Caption = 'Task No.';
ToolTip = 'Specifies the number of the task if the interaction has been created to complete a task. This field is not editable.';
TableRelation = "To-do";
}
field(24; "Salesperson Code"; Code[20])
{
Caption = 'Salesperson Code';
ToolTip = 'Specifies the code for the salesperson who carried out the interaction. This field is not editable.';
TableRelation = "Salesperson/Purchaser";
}
field(25; "Delivery Status"; Enum "Interaction Delivery Status")
{
Caption = 'Delivery Status';
ToolTip = 'Specifies the status of the delivery of the attachment. There are three options:';
}
field(26; Canceled; Boolean)
{
Caption = 'Canceled';
ToolTip = 'Specifies whether the interaction has been canceled. The field is not editable.';
}
field(27; "Correspondence Type"; Enum "Correspondence Type")
{
Caption = 'Correspondence Type';
ToolTip = 'Specifies the type of correspondence of the attachment in the interaction template. This field is not editable.';
}
field(28; "Contact Alt. Address Code"; Code[10])
{
Caption = 'Contact Alt. Address Code';
TableRelation = "Contact Alt. Address".Code where("Contact No." = field("Contact No."));
}
field(29; "Logged Segment Entry No."; Integer)
{
Caption = 'Logged Segment Entry No.';
TableRelation = "Logged Segment";
}
field(30; "Document Type"; Enum "Interaction Log Entry Document Type")
{
Caption = 'Document Type';
ToolTip = 'Specifies the type of document if there is one that the interaction log entry records. You cannot change the contents of this field.';
}
field(31; "Document No."; Code[20])
{
Caption = 'Document No.';
ToolTip = 'Specifies the number of the document (if any) that the interaction log entry records.';
}
field(32; "Version No."; Integer)
{
Caption = 'Version No.';
}
field(33; "Doc. No. Occurrence"; Integer)
{
Caption = 'Doc. No. Occurrence';
}
field(34; "Contact Via"; Text[80])
{
Caption = 'Contact Via';
ToolTip = 'Specifies the telephone number that you used when calling the contact.';
}
field(35; "Send Word Docs. as Attmt."; Boolean)
{
Caption = 'Send Word Docs. as Attmt.';
}
field(36; "Interaction Language Code"; Code[10])
{
Caption = 'Interaction Language Code';
ToolTip = 'Specifies the language code for the interaction for the interaction log. The code is copied from the language code of the interaction template, if one is specified.';
TableRelation = Language;
}
field(37; "E-Mail Logged"; Boolean)
{
Caption = 'Email Logged';
}
field(38; Subject; Text[100])
{
Caption = 'Subject';
ToolTip = 'Specifies the subject text that will be used for this interaction.';
}
field(39; "Contact Name"; Text[100])
{
CalcFormula = lookup(Contact.Name where("No." = field("Contact No.")));
Caption = 'Contact Name';
ToolTip = 'Specifies the name of the contact for which an interaction has been logged.';
Editable = false;
FieldClass = FlowField;
}
field(40; "Contact Company Name"; Text[100])
{
CalcFormula = lookup(Contact.Name where("No." = field("Contact Company No."), Type = const(Company)));
Caption = 'Contact Company Name';
ToolTip = 'Specifies the name of the contact company for which an interaction has been logged.';
Editable = false;
FieldClass = FlowField;
}
field(43; Comment; Boolean)
{
CalcFormula = exist("Inter. Log Entry Comment Line" where("Entry No." = field("Entry No.")));
Caption = 'Comment';
ToolTip = 'Specifies that a comment exists for this interaction log entry.';
Editable = false;
FieldClass = FlowField;
}
field(44; "Opportunity No."; Code[20])
{
Caption = 'Opportunity No.';
ToolTip = 'Specifies the number of the opportunity to which the interaction is linked.';
TableRelation = Opportunity;
}
field(45; Postponed; Boolean)
{
Caption = 'Postponed';
}
field(46; "Word Template Code"; Code[30])
{
DataClassification = CustomerContent;
}
field(47; Merged; Boolean)
{
DataClassification = SystemMetadata;
}
field(48; "Modified Word Template"; Integer)
{
DataClassification = SystemMetadata;
}
}
keys
{
key(Key1; "Entry No.")
{
Clustered = true;
}
key(Key2; "Contact Company No.", "Contact No.", Date, Postponed)
{
}
key(Key3; "Contact Company No.", Date, "Contact No.", Canceled, "Initiated By", "Attempt Failed", Postponed)
{
}
key(Key4; "Interaction Group Code", Date)
{
}
key(Key5; "Interaction Group Code", Canceled, Date, Postponed)
{
}
key(Key6; "Interaction Template Code", Date)
{
}
key(Key7; "Interaction Template Code", Canceled, Date, Postponed)
{
IncludedFields = "Cost (LCY)", "Duration (Min.)";
}
key(Key8; Canceled, "Campaign No.", "Campaign Entry No.", Date, Postponed)
{
}
key(Key9; "Campaign No.", "Campaign Entry No.", Date, Postponed)
{
}
key(Key10; "Salesperson Code", Date, Postponed)
{
}
key(Key11; Canceled, "Salesperson Code", Date, Postponed)
{
IncludedFields = "Cost (LCY)", "Duration (Min.)";
}
key(Key12; "Logged Segment Entry No.", Postponed)
{
}
key(Key13; "Attachment No.")
{
}
key(Key14; "To-do No.", Date)
{
}
key(Key15; "Contact No.", "Correspondence Type", "E-Mail Logged", Subject, Postponed)
{
}
key(Key16; "Campaign No.", "Campaign Target")
{
}
key(Key17; "Campaign No.", "Contact Company No.", "Campaign Target", Postponed)
{
}
key(Key18; "Opportunity No.", Date)
{
}
}
fieldgroups
{
fieldgroup(DropDown; "Entry No.", Description, "Contact No.", Date)
{
}
fieldgroup(Brick; "Salesperson Code", Description, Date, "Contact Name", "Contact Company Name")
{
}
}
trigger OnDelete()
var
InterLogEntryCommentLine: Record "Inter. Log Entry Comment Line";
Attachment: Record Attachment;
CampaignTargetGroupMgt: Codeunit "Campaign Target Group Mgt";
begin
InterLogEntryCommentLine.SetRange("Entry No.", "Entry No.");
if not InterLogEntryCommentLine.IsEmpty() then
InterLogEntryCommentLine.DeleteAll();
CampaignTargetGroupMgt.DeleteContfromTargetGr(Rec);
if UniqueAttachment() then
if Attachment.Get("Attachment No.") then
Attachment.RemoveAttachment(false);
end;
var
#pragma warning disable AA0470
MarkedAsFormatTxt: Label '%1 %2 is marked %3.\';
#pragma warning restore AA0470
RemoveCheckmarkQst: Label 'Do you wish to remove the checkmark?';
#pragma warning disable AA0470
MarkAsQst: Label 'Do you wish to mark %1 %2 as %3?';
#pragma warning restore AA0470
CantViewStatementsErr: Label 'It is not possible to view sales statements after they have been printed.';
CantShowCoverSheetsErr: Label 'It is not possible to show cover sheets after they have been printed.';
#pragma warning disable AA0470
RemoveCheckmarkLinesQst: Label 'Do you wish to remove the checkmark from the selected %1 lines?';
MarkLinesAsQst: Label 'Do you wish to mark the selected %1 lines as %2?';
#pragma warning restore AA0470
RemoveAttachmentQst: Label 'Do you want to remove Attachment?';
RemoveUniqueAttachmentsQst: Label 'Do you want to remove unique Attachments for the selected lines?';
EvaluationOptionsTxt: Label 'Very Positive,Positive,Neutral,Negative,Very Negative';
TitleFromLbl: Label '%1 - from %2', Comment = '%1 - document description, %2 - name';
TitleByLbl: Label '%1 - by %2', Comment = '%1 - document description, %2 - name';
OpenMessageQst: Label 'You are about to open an email message in Outlook Online. Email messages might contain harmful content. Use caution when interacting with the message. Do you want to continue?';
[InherentPermissions(PermissionObjectType::TableData, Database::"Interaction Log Entry", 'r')]
procedure InsertRecord()
var
SequenceNoMgt: Codeunit "Sequence No. Mgt.";
begin
if not Insert() then begin
SequenceNoMgt.RebaseSeqNo(Database::"Interaction Log Entry");
"Entry No." := SequenceNoMgt.GetNextSeqNo(Database::"Interaction Log Entry");
Insert();
end;
end;
procedure AssignNewOpportunity()
var
Opportunity: Record Opportunity;
Contact: Record Contact;
begin
TestField(Canceled, false);
TestField("Opportunity No.", '');
if "Contact No." <> '' then
if Contact.Get("Contact No.") then
Contact.CheckIfPrivacyBlockedGeneric();
if "Contact Company No." <> '' then
if Contact.Get("Contact Company No.") then
Contact.CheckIfPrivacyBlockedGeneric();
Opportunity.CreateFromInteractionLogEntry(Rec);
"Opportunity No." := Opportunity."No.";
Modify();
end;
procedure CanCreateOpportunity(): Boolean
begin
exit(not Canceled and ("Opportunity No." = ''));
end;
procedure CopyFromSegment(SegLine: Record "Segment Line")
begin
"Contact No." := SegLine."Contact No.";
"Contact Company No." := SegLine."Contact Company No.";
Date := SegLine.Date;
Description := SegLine.Description;
"Information Flow" := SegLine."Information Flow";
"Initiated By" := SegLine."Initiated By";
"Attachment No." := SegLine."Attachment No.";
"Cost (LCY)" := SegLine."Cost (LCY)";
"Duration (Min.)" := SegLine."Duration (Min.)";
"User ID" := CopyStr(UserId(), 1, MaxStrLen("User ID"));
"Interaction Group Code" := SegLine."Interaction Group Code";
"Interaction Template Code" := SegLine."Interaction Template Code";
"Interaction Language Code" := SegLine."Language Code";
Subject := SegLine.Subject;
"Campaign No." := SegLine."Campaign No.";
"Campaign Entry No." := SegLine."Campaign Entry No.";
"Campaign Response" := SegLine."Campaign Response";
"Campaign Target" := SegLine."Campaign Target";
"Segment No." := SegLine."Segment No.";
Evaluation := SegLine.Evaluation;
"Time of Interaction" := SegLine."Time of Interaction";
"Attempt Failed" := SegLine."Attempt Failed";
"To-do No." := SegLine."To-do No.";
"Salesperson Code" := SegLine."Salesperson Code";
"Correspondence Type" := SegLine."Correspondence Type";
"Contact Alt. Address Code" := SegLine."Contact Alt. Address Code";
"Document Type" := SegLine."Document Type";
"Document No." := SegLine."Document No.";
"Doc. No. Occurrence" := SegLine."Doc. No. Occurrence";
"Version No." := SegLine."Version No.";
"Send Word Docs. as Attmt." := SegLine."Send Word Doc. As Attmt.";
"Contact Via" := SegLine."Contact Via";
"Opportunity No." := SegLine."Opportunity No.";
"Word Template Code" := SegLine."Word Template Code";
Merged := SegLine.Merged;
OnAfterCopyFromSegment(Rec, SegLine);
end;
procedure CreateInteraction()
var
TempSegmentLine: Record "Segment Line" temporary;
Contact: Record Contact;
begin
if "Contact No." <> '' then
if Contact.Get("Contact No.") then
Contact.CheckIfPrivacyBlockedGeneric();
if "Contact Company No." <> '' then
if Contact.Get("Contact Company No.") then
Contact.CheckIfPrivacyBlockedGeneric();
TempSegmentLine.CreateInteractionFromInteractLogEntry(Rec);
end;
procedure CreateTask()
var
TempToDoTask: Record "To-do" temporary;
Contact: Record Contact;
begin
if "Contact No." <> '' then
if Contact.Get("Contact No.") then
Contact.CheckIfPrivacyBlockedGeneric();
if "Contact Company No." <> '' then
if Contact.Get("Contact Company No.") then
Contact.CheckIfPrivacyBlockedGeneric();
TempToDoTask.CreateTaskFromInteractLogEntry(Rec)
end;
procedure OpenAttachment()
var
Attachment: Record Attachment;
SegmentLine: Record "Segment Line";
WebRequestHelper: Codeunit "Web Request Helper";
InStream: InStream;
EmailMessageUrl: Text;
IsHandled: Boolean;
begin
if "Attachment No." = 0 then
exit;
Attachment.Get("Attachment No.");
IsHandled := false;
OnBeforeOpenAttachment(Rec, IsHandled, Attachment);
if IsHandled then
exit;
if Attachment."Storage Type" <> Attachment."Storage Type"::"Exchange Storage" then begin
SegmentLine."Contact No." := "Contact No.";
SegmentLine."Salesperson Code" := "Salesperson Code";
SegmentLine."Contact Alt. Address Code" := "Contact Alt. Address Code";
SegmentLine.Date := Date;
SegmentLine."Campaign No." := "Campaign No.";
SegmentLine."Segment No." := "Segment No.";
SegmentLine."Line No." := "Entry No.";
SegmentLine.Description := Description;
SegmentLine.Subject := Subject;
SegmentLine."Language Code" := "Interaction Language Code";
OnOpenAttachmentOnBeforeShowAttachment(Rec, SegmentLine, Attachment);
Attachment.ShowAttachment(SegmentLine, Format("Entry No.") + ' ' + Description);
end else begin
Attachment.CalcFields("Email Message Url");
if Attachment."Email Message Url".HasValue() then begin
Attachment."Email Message Url".CreateInStream(InStream);
InStream.Read(EmailMessageUrl);
if WebRequestHelper.IsHttpUrl(EmailMessageUrl) then begin
if Confirm(OpenMessageQst, true) then
HyperLink(EmailMessageUrl);
exit;
end;
end;
end;
OnAfterOpenAttachment(Rec, Attachment, SegmentLine);
end;
procedure ToggleCanceledCheckmark()
var
ErrorTxt: Text[80];
MasterCanceledCheckmark: Boolean;
RemoveUniqueAttachment: Boolean;
begin
if Find('-') then
if ConfirmToggleCanceledCheckmark(Count, ErrorTxt) then begin
MasterCanceledCheckmark := not Canceled;
if FindUniqueAttachment() and MasterCanceledCheckmark then
RemoveUniqueAttachment := Confirm(ErrorTxt, false);
SetCurrentKey("Entry No.");
if Find('-') then
repeat
SetCanceledCheckmark(MasterCanceledCheckmark, RemoveUniqueAttachment);
until Next() = 0;
end;
end;
procedure SetCanceledCheckmark(CanceledCheckmark: Boolean; RemoveUniqueAttachment: Boolean)
var
CampaignEntry: Record "Campaign Entry";
LoggedSegment: Record "Logged Segment";
Attachment: Record Attachment;
IsHandled: Boolean;
begin
OnBeforeSetCanceledCheckmark(Rec, CanceledCheckmark, RemoveUniqueAttachment, IsHandled);
if IsHandled then
exit;
if Canceled and not CanceledCheckmark then begin
if "Logged Segment Entry No." <> 0 then begin
LoggedSegment.SetLoadFields(Canceled);
LoggedSegment.Get("Logged Segment Entry No.");
LoggedSegment.TestField(Canceled, false);
end;
if "Campaign Entry No." <> 0 then begin
CampaignEntry.SetLoadFields(Canceled);
CampaignEntry.Get("Campaign Entry No.");
CampaignEntry.TestField(Canceled, false);
end;
end;
if not Canceled and CanceledCheckmark then
if UniqueAttachment() and RemoveUniqueAttachment then begin
if Attachment.Get("Attachment No.") then
Attachment.RemoveAttachment(false);
"Attachment No." := 0;
end;
Canceled := CanceledCheckmark;
Modify();
end;
local procedure ConfirmToggleCanceledCheckmark(NumberOfSelectedLines: Integer; var ErrorTxt: Text[80]): Boolean
begin
if NumberOfSelectedLines = 1 then begin
ErrorTxt := RemoveAttachmentQst;
if Canceled then
exit(Confirm(
MarkedAsFormatTxt +
RemoveCheckmarkQst, true, TableCaption(), "Entry No.", FieldCaption(Canceled)));
exit(Confirm(
MarkAsQst, true, TableCaption(), "Entry No.", FieldCaption(Canceled)));
end;
ErrorTxt := RemoveUniqueAttachmentsQst;
if Canceled then
exit(Confirm(
RemoveCheckmarkLinesQst, true, TableCaption));
exit(Confirm(
MarkLinesAsQst, true, TableCaption(), FieldCaption(Canceled)));
end;
procedure UniqueAttachment() IsUnique: Boolean
var
InteractLogEntry: Record "Interaction Log Entry";
begin
if "Attachment No." <> 0 then begin
InteractLogEntry.SetCurrentKey("Attachment No.");
InteractLogEntry.SetRange("Attachment No.", "Attachment No.");
InteractLogEntry.SetFilter("Entry No.", '<>%1', "Entry No.");
IsUnique := InteractLogEntry.IsEmpty();
end;
end;
local procedure FindUniqueAttachment() IsUnique: Boolean
begin
if Find('-') then
repeat
IsUnique := UniqueAttachment();
until (Next() = 0) or IsUnique;
end;
procedure ShowDocument()
var
SalesHeader: Record "Sales Header";
SalesHeaderArchive: Record "Sales Header Archive";
SalesInvHeader: Record "Sales Invoice Header";
SalesShptHeader: Record "Sales Shipment Header";
SalesCrMemoHeader: Record "Sales Cr.Memo Header";
IssuedReminderHeader: Record "Issued Reminder Header";
PurchHeader: Record "Purchase Header";
PurchHeaderArchive: Record "Purchase Header Archive";
PurchInvHeader: Record "Purch. Inv. Header";
PurchRcptHeader: Record "Purch. Rcpt. Header";
PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr.";
ReturnRcptHeader: Record "Return Receipt Header";
IssuedFinChargeMemoHeader: Record "Issued Fin. Charge Memo Header";
ReturnReceiptHeader: Record "Return Receipt Header";
ReturnShipmentHeader: Record "Return Shipment Header";
PageManagement: Codeunit "Page Management";
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeShowDocument(Rec, IsHandled);
if IsHandled then
exit;
case "Document Type" of
"Document Type"::"Sales Qte.":
if "Version No." <> 0 then begin
SalesHeaderArchive.Get(
SalesHeaderArchive."Document Type"::Quote, "Document No.",
"Doc. No. Occurrence", "Version No.");
SalesHeaderArchive.SetRange("Document Type", SalesHeaderArchive."Document Type"::Quote);
SalesHeaderArchive.SetRange("No.", "Document No.");
SalesHeaderArchive.SetRange("Doc. No. Occurrence", "Doc. No. Occurrence");
Page.Run(Page::"Sales Quote Archive", SalesHeaderArchive);
end else begin
SalesHeader.Get(SalesHeader."Document Type"::Quote, "Document No.");
PageManagement.PageRun(SalesHeader);
end;
"Document Type"::"Sales Blnkt. Ord":
if "Version No." <> 0 then begin
SalesHeaderArchive.Get(SalesHeaderArchive."Document Type"::"Blanket Order", "Document No.",
"Doc. No. Occurrence", "Version No.");
SalesHeaderArchive.SetRange("Document Type", SalesHeaderArchive."Document Type"::"Blanket Order");
SalesHeaderArchive.SetRange("No.", "Document No.");
SalesHeaderArchive.SetRange("Doc. No. Occurrence", "Doc. No. Occurrence");
Page.Run(Page::"Blanket Sales Order Archive", SalesHeaderArchive);
end else begin
SalesHeader.Get(SalesHeader."Document Type"::"Blanket Order", "Document No.");
PageManagement.PageRun(SalesHeader);
end;
"Document Type"::"Sales Ord. Cnfrmn.":
if "Version No." <> 0 then begin
SalesHeaderArchive.Get(
SalesHeaderArchive."Document Type"::Order, "Document No.",
"Doc. No. Occurrence", "Version No.");
SalesHeaderArchive.SetRange("Document Type", SalesHeaderArchive."Document Type"::Order);
SalesHeaderArchive.SetRange("No.", "Document No.");
SalesHeaderArchive.SetRange("Doc. No. Occurrence", "Doc. No. Occurrence");
Page.Run(Page::"Sales Order Archive", SalesHeaderArchive);
end else begin
SalesHeader.Get(SalesHeader."Document Type"::Order, "Document No.");
PageManagement.PageRun(SalesHeader);
end;
"Document Type"::"Sales Draft Invoice":
begin
SalesHeader.Get(SalesHeader."Document Type"::Invoice, "Document No.");
PageManagement.PageRun(SalesHeader);
end;
"Document Type"::"Sales Inv.":
begin
SalesInvHeader.Get("Document No.");
PageManagement.PageRun(SalesInvHeader);
end;
"Document Type"::"Sales Shpt. Note":
begin
SalesShptHeader.Get("Document No.");
PageManagement.PageRun(SalesShptHeader);
end;
"Document Type"::"Sales Cr. Memo":
begin
SalesCrMemoHeader.Get("Document No.");
PageManagement.PageRun(SalesCrMemoHeader);
end;
"Document Type"::"Sales Stmnt.":
Error(CantViewStatementsErr);
"Document Type"::"Sales Rmdr.":
begin
IssuedReminderHeader.Get("Document No.");
Page.Run(Page::"Issued Reminder", IssuedReminderHeader);
end;
"Document Type"::"Purch.Qte.":
if "Version No." <> 0 then begin
PurchHeaderArchive.Get(
PurchHeaderArchive."Document Type"::Quote, "Document No.",
"Doc. No. Occurrence", "Version No.");
PurchHeaderArchive.SetRange("Document Type", PurchHeaderArchive."Document Type"::Quote);
PurchHeaderArchive.SetRange("No.", "Document No.");
PurchHeaderArchive.SetRange("Doc. No. Occurrence", "Doc. No. Occurrence");
Page.Run(Page::"Purchase Quote Archive", PurchHeaderArchive);
end else begin
PurchHeader.Get(PurchHeader."Document Type"::Quote, "Document No.");
PageManagement.PageRun(PurchHeader);
end;
"Document Type"::"Purch. Blnkt. Ord.":
if "Version No." <> 0 then begin
PurchHeaderArchive.Get(
PurchHeaderArchive."Document Type"::"Blanket Order", "Document No.",
"Doc. No. Occurrence", "Version No.");
PurchHeaderArchive.SetRange("Document Type", PurchHeaderArchive."Document Type"::"Blanket Order");
PurchHeaderArchive.SetRange("No.", "Document No.");
PurchHeaderArchive.SetRange("Doc. No. Occurrence", "Doc. No. Occurrence");
Page.Run(Page::"Blanket Purchase Order Archive", PurchHeaderArchive);
end else begin
PurchHeader.Get(PurchHeader."Document Type"::"Blanket Order", "Document No.");
PageManagement.PageRun(PurchHeader);
end;
"Document Type"::"Purch. Ord.":
if "Version No." <> 0 then begin
PurchHeaderArchive.Get(
PurchHeaderArchive."Document Type"::Order, "Document No.",
"Doc. No. Occurrence", "Version No.");
PurchHeaderArchive.SetRange("Document Type", PurchHeaderArchive."Document Type"::Order);
PurchHeaderArchive.SetRange("No.", "Document No.");
PurchHeaderArchive.SetRange("Doc. No. Occurrence", "Doc. No. Occurrence");
Page.Run(Page::"Purchase Order Archive", PurchHeaderArchive);
end else begin
PurchHeader.Get(PurchHeader."Document Type"::Order, "Document No.");
PageManagement.PageRun(PurchHeader);
end;
"Document Type"::"Purch. Inv.":
begin
PurchInvHeader.Get("Document No.");
PageManagement.PageRun(PurchInvHeader);
end;
"Document Type"::"Purch. Rcpt.":
begin
PurchRcptHeader.Get("Document No.");
PageManagement.PageRun(PurchRcptHeader);
end;
"Document Type"::"Purch. Cr. Memo":
begin
PurchCrMemoHeader.Get("Document No.");
PageManagement.PageRun(PurchCrMemoHeader);
end;
"Document Type"::"Cover Sheet":
Error(CantShowCoverSheetsErr);
"Document Type"::"Sales Return Order":
if SalesHeader.Get(SalesHeader."Document Type"::"Return Order", "Document No.") then
PageManagement.PageRun(SalesHeader)
else begin
ReturnRcptHeader.SetRange("Return Order No.", "Document No.");
if ReturnRcptHeader.Count() = 1 then
PageManagement.PageRun(ReturnRcptHeader)
else
PageManagement.PageRunList(ReturnRcptHeader);
end;
"Document Type"::"Sales Finance Charge Memo":
begin
IssuedFinChargeMemoHeader.Get("Document No.");
Page.Run(Page::"Issued Finance Charge Memo", IssuedFinChargeMemoHeader);
end;
"Document Type"::"Sales Return Receipt":
begin
ReturnReceiptHeader.Get("Document No.");
PageManagement.PageRun(ReturnReceiptHeader);
end;
"Document Type"::"Purch. Return Shipment":
begin
ReturnShipmentHeader.Get("Document No.");
PageManagement.PageRun(ReturnShipmentHeader);
end;
"Document Type"::"Purch. Return Ord. Cnfrmn.":
if PurchHeader.Get(PurchHeader."Document Type"::"Return Order", "Document No.") then
PageManagement.PageRun(PurchHeader)
else begin
ReturnShipmentHeader.SetRange("Return Order No.", "Document No.");
if ReturnShipmentHeader.Count() = 1 then
PageManagement.PageRun(ReturnShipmentHeader)
else
PageManagement.PageRunList(ReturnShipmentHeader);
end;
end;
OnAfterShowDocument(Rec);
end;
procedure EvaluateInteraction()
var
Selected: Integer;
begin
if Find('-') then begin
Selected := Dialog.StrMenu(EvaluationOptionsTxt);
if Selected <> 0 then
repeat
Evaluation := Enum::"Interaction Evaluation".FromInteger(Selected);
Modify();
until Next() = 0;
end;
end;
procedure ResumeInteraction()
var
TempSegmentLine: Record "Segment Line" temporary;
IsHandled: Boolean;
begin
TempSegmentLine.CopyFromInteractLogEntry(Rec);
TempSegmentLine.Validate(Date, WorkDate());
OnResumeInteractionOnAfterDateValidation(TempSegmentLine);
if TempSegmentLine."To-do No." <> '' then
TempSegmentLine.SetRange("To-do No.", TempSegmentLine."To-do No.");
if TempSegmentLine."Contact Company No." <> '' then
TempSegmentLine.SetRange("Contact Company No.", TempSegmentLine."Contact Company No.");
if TempSegmentLine."Contact No." <> '' then
TempSegmentLine.SetRange("Contact No.", TempSegmentLine."Contact No.");
if TempSegmentLine."Salesperson Code" <> '' then
TempSegmentLine.SetRange("Salesperson Code", TempSegmentLine."Salesperson Code");
if TempSegmentLine."Campaign No." <> '' then
TempSegmentLine.SetRange("Campaign No.", TempSegmentLine."Campaign No.");
if TempSegmentLine."Opportunity No." <> '' then
TempSegmentLine.SetRange("Opportunity No.", TempSegmentLine."Opportunity No.");
IsHandled := false;
OnResumeInteractionOnBeforeStartWizard(Rec, TempSegmentLine, IsHandled);
if not IsHandled then
TempSegmentLine.StartWizard();
end;
procedure GetEntryTitle() EntryTitle: Text
var
InteractionTemplate: Record "Interaction Template";
SalespersonPurchaser: Record "Salesperson/Purchaser";
User: Record User;
begin
InteractionTemplate.SetLoadFields("Description", "Information Flow");
if InteractionTemplate.Get("Interaction Template Code") then begin
EntryTitle := InteractionTemplate.Description;
case InteractionTemplate."Information Flow" of
InteractionTemplate."Information Flow"::Outbound:
begin
SalespersonPurchaser.SetLoadFields(Name);
if ("Salesperson Code" <> '') and SalespersonPurchaser.Get("Salesperson Code") then
EntryTitle := StrSubstNo(TitleByLbl, InteractionTemplate.Description, SalespersonPurchaser.Name)
else begin
User.SetLoadFields("Full Name");
User.SetRange("User Name", "User ID");
if User.FindFirst() then
EntryTitle := StrSubstNo(TitleByLbl, InteractionTemplate.Description, User."Full Name");
end;
end;
InteractionTemplate."Information Flow"::Inbound:
begin
CalcFields("Contact Name");
EntryTitle := StrSubstNo(TitleFromLbl, InteractionTemplate.Description, "Contact Name");
end;
end;
end;
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyFromSegment(var InteractionLogEntry: Record "Interaction Log Entry"; SegmentLine: Record "Segment Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterShowDocument(var InteractionLogEntry: Record "Interaction Log Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeOpenAttachment(var InteractionLogEntry: Record "Interaction Log Entry"; var IsHandled: Boolean; var Attachment: Record Attachment)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeShowDocument(var InteractionLogEntry: Record "Interaction Log Entry"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeSetCanceledCheckmark(var InteractionLogEntry: Record "Interaction Log Entry"; CanceledCheckmark: Boolean; RemoveUniqueAttachment: Boolean; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterOpenAttachment(var InteractionLogEntry: Record "Interaction Log Entry"; Attachment: Record Attachment; var SegmentLine: Record "Segment Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnOpenAttachmentOnBeforeShowAttachment(var InteractionLogEntry: Record "Interaction Log Entry"; var SegmentLine: Record "Segment Line"; var Attachment: Record Attachment)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnResumeInteractionOnBeforeStartWizard(InteractionLogEntry: Record "Interaction Log Entry"; var SegmentLine: Record "Segment Line"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnResumeInteractionOnAfterDateValidation(var TempSegmentLine: Record "Segment Line" temporary)
begin
end;
}