Codeunit "Synchronize ICCAP"
ID 72249578
Namespace: CapVision.CapBusiness.IntercompanySynchronization
Properties
| Name | Value |
|---|---|
| SingleInstance | True |
| Access | Public |
| TableNo | Table CapVision.CapBusiness.IntercompanySynchronization."Record Sync. Entry ICCAP" |
Methods
LogRecord
Journalise un enregistrement à synchroniser.
procedure LogRecord(FromRecordRef: RecordRef, FromCompanyName: Text[30], ToCompanyName: Text[30])
Parameters
| Name | Type | Description |
|---|---|---|
| FromRecordRef | RecordRef | |
| FromCompanyName | Text[30] | |
| ToCompanyName | Text[30] |
Events
OnFindRecord
Se produit lorsque l'application recherche si un enregistrement existe déjà dans la société destination.
[BusinessEvent(False)]
local procedure OnFindRecord(FromRecRef: RecordRef, var ToRecRef: RecordRef, var Found: Boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| FromRecRef | RecordRef | |
| ToRecRef | RecordRef | |
| Found | Boolean |
Examples
Comment implémenter ma propre correspondance entre sociétés ?
Si vous avez déjà des données identiques dans les sociétés que vous vous apprêtez à synchroniser, vous voudriez peut-être éviter d'avoir à créer des enregistrements en doublon.
En standard, l'application utilise en champ `Système Id` pour reconnaître les enregistrements identiques entre sociétés.
Toutefois, vous pourriez vouloir implémenter votre propre logique.
L'exemple ci-dessous illustre comment vous pouvez implémenter votre propre recherche d'article à partir du numéro, puis de la descriptions.
`
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Synchronize ICCAP", 'OnFindRecord', '', false, false)]
local procedure OnFindRecord(FromRecRef: RecordRef; var ToRecRef: RecordRef; var Found: Boolean);
begin
case FromRecRef.Number() of
Database::Item:
begin
//Recherche sur le numéro article
if not Found then begin
ToRecRef.Reset();
ToRecRef.Field(1 /* No. */).SetRange(FromRecRef.Field(1).Value);
Found := ToRecRef.FindFirst();
end;
if not Found then begin
//Recherche sur la description
ToRecRef.Reset();
ToRecRef.Field(3 /* Description */).SetRange(FromRecRef.Field(3).Value);
Found := ToRecRef.FindFirst();
end;
end;
end;
end;
`
Remarks
Vous pouvez utiliser cet événement pour implémenter votre propre méthode de recherche (cf. exemple).
OnBeforeInsertRecord
Se produit avant l'insertion d'un enregistrement dans la société destination.
[IntegrationEvent(False,False)]
local procedure OnBeforeInsertRecord(FromRecRef: RecordRef, ToRecRef: RecordRef, var Handled: Boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| FromRecRef | RecordRef | |
| ToRecRef | RecordRef | |
| Handled | Boolean |
OnAfterSetRecordFields
Se produit après que l'ensemble des champs à copier de l'enregistrement d'origine aient été copiés dans l'enregistrement de destination au moment de son insertion initiale.
[IntegrationEvent(False,False)]
local procedure OnAfterSetRecordFields(FromRecRef: RecordRef, var ToRecRef: RecordRef)
Parameters
| Name | Type | Description |
|---|---|---|
| FromRecRef | RecordRef | |
| ToRecRef | RecordRef |
Remarks
Utilisez cet événement pour effectuer des modifications supplémentaires sur l'enregistrement de destination avant son insertion.
OnBeforeSyncRecord
[IntegrationEvent(False,False)]
local procedure OnBeforeSyncRecord(SyncDataSetupTable: Record "Sync. Data Setup (Table) ICCAP", FromRecordRef: RecordRef, var Handled: Boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| SyncDataSetupTable | Table CapVision.CapBusiness.IntercompanySynchronization."Sync. Data Setup (Table) ICCAP" | |
| FromRecordRef | RecordRef | |
| Handled | Boolean |