Table of Contents

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

See also