table 50075 "Sharepoint Documents"
{
Caption = 'Sharepoint Documents';
DataClassification = ToBeClassified;
fields
{
field(1; "No."; Code[25])
{
DataClassification = ToBeClassified;
}
field(2; "Line No."; Integer)
{
DataClassification = ToBeClassified;
}
field(3; "SharePoint URL"; Text[2048])
{
DataClassification = ToBeClassified;
}
field(4; "File Name"; Text[250])
{
DataClassification = ToBeClassified;
}
field(5; "File Extension"; Text[50])
{
DataClassification = ToBeClassified;
}
field(6; "Table Id"; Integer)
{
DataClassification = ToBeClassified;
}
// field(7; "Document Type"; Option)
// {
// OptionMembers = Quote,Order,Invoice,"Credit Memo","Blanket Order","Return Order";
// }
field(8; ID; Integer)
{
DataClassification = ToBeClassified;
AutoIncrement = true;
}
field(9; "Document Code"; Code[20])
{
DataClassification = ToBeClassified;
}
field(10; "No. Series"; Code[20])
{
DataClassification = ToBeClassified;
}
field(11; "Document Type"; Option)
{
OptionMembers = Quote,Order,Invoice,"Credit Memo","Blanket Order","Return Order";
}
field(12; "Service Instruction Sheet"; boolean)
{
DataClassification = ToBeClassified;
}
field(13; "Exchange Rate Doc"; boolean)
{
DataClassification = ToBeClassified;
}
field(14; "Moved To Spoint"; Boolean)
{
DataClassification = ToBeClassified;
}
field(15; "Spoint Folder Relative Url"; Text[2048])
{
DataClassification = ToBeClassified;
}
}
keys
{
key(Key1; "No.", "Line No.", "Table Id", ID, "Document Code")
{
Clustered = true;
}
}
var
CuNoSriemgmt: Codeunit NoSeriesManagement;
}
page 50159 "Sharepoint Documents1"
{
PageType = List;
ApplicationArea = All;
UsageCategory = Lists;
SourceTable = "Sharepoint Documents";
layout
{
area(Content)
{
repeater(GroupName)
{
field("No."; "No.")
{
ApplicationArea = All;
}
field("SharePoint URL"; "SharePoint URL")
{
Editable = false;
}
field("File Name"; "File Name")
{
trigger OnDrillDown()
var
begin
UploadDocumentForTheRecord("Table ID", "No.", "Document Code");
end;
}
field("File Extension"; "File Extension")
{
}
}
}
area(Factboxes)
{
}
}
actions
{
area(processing)
{
action("View Document")
{
ApplicationArea = All;
Image = Document;
Promoted = true;
PromotedCategory = Process;
trigger OnAction();
begin
Hyperlink("SharePoint URL");
end;
}
action("Download Document")
{
ApplicationArea = All;
Image = Download;
Promoted = true;
PromotedCategory = Process;
trigger OnAction();
var
ObjICTSetup: Record "ICT Setup";
CuDocMgt: Codeunit "SharePoint Integration Handler";
bas64String: Text;
BcInstream: InStream;
BcOutStream: OutStream;
DialogTitle: Label 'Download File';
Cubase64: Codeunit "Base64 Convert";
Cutemplob: Codeunit "Temp Blob";
tofileName: Text;
tofolder: Label 'C:\';
toFilter: Label 'All Files (*.*)|*.*';
begin
ObjICTSetup.Get();
if ObjICTSetup."Use Sharepoint" then begin
bas64String := CuDocMgt.fnDownloadDocument("Spoint Folder Relative Url", "File Name");
bas64String := DelChr(bas64String, '<', '"');
bas64String := DelChr(bas64String, '>', '"');
tofileName := "File Name";
Cutemplob.CreateOutStream(BcOutStream);
Cubase64.FromBase64(bas64String, BcOutStream);
Cutemplob.CreateInStream(BcInstream);
DownloadFromStream(BcInstream, DialogTitle, tofolder, toFilter, tofileName);
end;
end;
}
action("Delete Document")
{
ApplicationArea = All;
Image = Delete;
Promoted = true;
PromotedCategory = Process;
ToolTip = 'Delete Document From Sharepoint';
trigger OnAction();
var
ObjICTSetup: Record "ICT Setup";
CuDocMgt: Codeunit "SharePoint Integration Handler";
res: text;
begin
ObjICTSetup.Get();
if ObjICTSetup."Use Sharepoint" then begin
res := CuDocMgt.fnDeleteDocument("Spoint Folder Relative Url", "File Name");
end;
if res = '200' then begin
if Delete(true) then begin
Message('Document Deleted Successfully');
end;
end;
Commit();
CurrPage.Update();
end;
}
}
}
trigger OnNewRecord(BelowxRec: Boolean)
var
begin
"File Name" := SelectFileTxt;
end;
trigger OnAfterGetRecord()
begin
end;
procedure UploadDocumentForTheRecord(TableId: Integer; RecordNo: code[25]; DocCode: Code[25])
var
FieldRef: FieldRef;
DocType: Option;
LineNo: Integer;
ColumnPropertArray: array[6] of Text[250];
i: Integer;
ObjPurchInvHeader: Record "Purch. Inv. Header";
ObjPurchRcptHeader: Record "Purch. Rcpt. Header";
ObjPurchCrMemoHdr: Record "Purch. Cr. Memo Hdr.";
ObjSalesHeader: Record "Sales Header";
ObjBankAccRecon: Record "Bank Acc. Reconciliation";
ObjEft: Record "EFT Generator";
FoldersArray: array[5] of Text[250];
begin
ObjcompInfo.get;
ObjSpStp.Reset();
ObjSpStp.SetRange(ObjSpStp."Table Id", TableId);
if ObjSpStp.FindFirst() then begin
case
TableId of
Database::"Purchase Header":
begin
ObjPurchHeader.get(RecordNo);
FoldersArray[1] := ObjSpStp.Folder;
FoldersArray[2] := ObjSpStp.Module;
FoldersArray[3] := ObjSpStp."Financial Year";
FoldersArray[4] := Format(ObjPurchHeader."Document Type");
FoldersArray[5] := RecordNo;
ParseTheDocumentToSharepointHandler(FoldersArray);
end;
end;
end;
end;
procedure ParseTheDocumentToSharepointHandler(FolderArray: array[5] of Text[250])
var
ServerFileName: Text[250];
ObjIctSetup: Record "ICT Setup";
ClientPath: Text[250];
clientFileName: Text[250];
TempFileName: Text[250];
cuTemplob: Codeunit "Temp Blob";
DialogTitle: Label 'Select File';
base64String: Text;
cuBase64: Codeunit "Base64 Convert";
fromFilter: label 'All Files (*.*)|*.*';
BcInstream: InStream;
bcOutStream: OutStream;
BcFile: File;
Exfilter: label '(*.*)|*.*';
FromFolder: label 'C:\';
filename: Text[250];
begin
Commit();
ObjIctSetup.Get();
File.UploadIntoStream(DialogTitle, FromFolder, FromFilter, clientFileName, BcInstream);
base64String := cuBase64.ToBase64(BcInstream);
filename := FileManagement.GetFileName(clientFileName);
"SharePoint URL" := CuDocMgmt.fnuploadDocument(base64String, FolderArray, filename);
"File Name" := filename;
"File Extension" := FileManagement.GetExtension(filename);
"Spoint Folder Relative Url" := '/' + FolderArray[1] + '/' + FolderArray[2] + '/' + FolderArray[3] + '/' + FolderArray[4] + '/' + FolderArray[5];
end;
procedure OpenForRecReference(RecRef: RecordRef)
var
FieldRef: FieldRef;
RecNo: Code[20];
RecNo2: Code[20];
DocType: Option;
LineNo: Integer;
DoCNo: Code[25];
begin
Reset();
FromRecRef := RecRef;
SetRange("Table ID", RecRef.Number);
CASE RecRef.NUMBER OF
DATABASE::"Sales Header",
DATABASE::"Sales Line",
DATABASE::"Purchase Header",
DATABASE::"Purchase Line":
BEGIN
FieldRef := RecRef.FIELD(1);
DocType := FieldRef.VALUE;
SETRANGE("Document Type", DocType);
FieldRef := RecRef.FIELD(3);
RecNo := FieldRef.VALUE;
SETRANGE("No.", RecNo);
FlowFieldsEditable := FALSE;
END;
END;
end;
var
FromRecRef: RecordRef;
UrlText: Text[250];
GLAccount: Record "G/L Account";
SalesDocumentFlow: Boolean;
PurchaseDocumentFlow: Boolean;
FlowFieldsEditable: Boolean;
ObjIctStupRec: Record "ICT Setup";
Attachment: Page "Document Attachment Details";
SelectFileTxt: TextConst ENU = 'Select File...';
TbUserSetup: Record "User Setup";
ObjSpStp: Record "Sharepoint Setup";
CuDocMgmt: Codeunit "SharePoint Integration Handler";
ObjcompInfo: Record "Company Information";
ObjPayments: Record Payments;
ObjPaylines: Record "Payment Lines";
ObjPurchHeader: Record "Purchase Header";
ObjStaffAdvance: Record Payments;
storereq: Record "Store Requistion Header";
prepaymentsheader: Record "Prepayments Header";
ObjProposedBudget: Record "Proposed Budget Header";
objBudgReallocation: Record "Budget Reallocation";
ObjBudget: Record "Budget Approval Header";
FileManagement: Codeunit "File Management";
FileName: Text;
ImportTxt: label 'Attach a document.';
FileDialogTxt: TextConst ENU = 'Attachments (%1)|%1';
FilterTxt: TextConst ENU = '*.jpg;*.jpeg;*.bmp;*.png;*.gif;*.tiff;*.tif;*.pdf;*.docx;*.doc;*.xlsx;*.xls;*.pptx;*.ppt;*.msg;*.xml;*.*';
FolderArray: array[5] of Text[250];
i: Integer;
}
table 50076 "Sharepoint Setup"
{
Caption = 'Sharepoint Setup';
DataClassification = ToBeClassified;
fields
{
field(1; No; Integer)
{
DataClassification = ToBeClassified;
}
field(2; "Shortcut Dimension 2 Code"; Code[20])
{
CaptionClass = '1,1,2';
TableRelation = "Dimension Value".Code WHERE("Global Dimension No." = CONST(2));
trigger OnValidate()
begin
end;
}
field(3; "Sharepoint Url"; text[250])
{
DataClassification = ToBeClassified;
}
// field(4; "Document Type"; Enum "Sharepoint Document types")
// {
// DataClassification = ToBeClassified;
// }
field(5; "Library"; Text[150])
{
DataClassification = ToBeClassified;
}
field(6; "Folder"; Text[150])
{
DataClassification = ToBeClassified;
}
field(7; "Financial Year"; Text[50])
{
DataClassification = ToBeClassified;
}
field(8; "Quarter"; Text[50])
{
DataClassification = ToBeClassified;
}
//Module
field(9; "Module"; Text[50])
{
DataClassification = ToBeClassified;
}
//Sub-Module By
field(10; "Sub-Module By"; Option)
{
DataClassification = ToBeClassified;
OptionMembers = "Payment Type/Document Type",None;
}
//Sub-Module
field(11; "Sub-Module"; Text[50])
{
DataClassification = ToBeClassified;
}
//table Id
field(12; "Table Id"; Integer)
{
DataClassification = ToBeClassified;
TableRelation = AllObjWithCaption."Object ID" where("Object Type" = CONST(Table));
trigger OnValidate()
var
ObjAllObjWithCaption: Record "AllObjWithCaption";
begin
ObjAllObjWithCaption.Reset();
ObjAllObjWithCaption.SetRange("Object ID", "Table Id");
ObjAllObjWithCaption.SetRange("Object Type", ObjAllObjWithCaption."Object Type"::Table);
if ObjAllObjWithCaption.FindFirst() then
"Table Name" := ObjAllObjWithCaption."Object Name";
end;
}
//table Name
field(13; "Table Name"; Text[50])
{
DataClassification = ToBeClassified;
}
}
keys
{
key(Key1; No)
{
Clustered = true;
}
}
var
myInt: Integer;
trigger OnInsert()
begin
end;
trigger OnModify()
begin
end;
trigger OnDelete()
begin
end;
trigger OnRename()
begin
end;
}
Comments