« BinaryData (TImportContext) » : différence entre les versions

De Wiki1000
(Page créée avec « <source lang='delphi'>property BinaryData:TfwBinary;</source> Cette propriété de type binaire permet de définir les données à importer lorsque cel... »)
 
Aucun résumé des modifications
 
Ligne 2 : Ligne 2 :


Cette propriété de [[Binaire_(type)|type binaire]] permet de définir les données à importer lorsque celle-ci sont contenues dans un objet binaire.
Cette propriété de [[Binaire_(type)|type binaire]] permet de définir les données à importer lorsque celle-ci sont contenues dans un objet binaire.
Exemple :
Importation des données contenues dans un message de file d'attente
<source lang="delphi">
unit TestSYFREWF;
interface
Type
  ProcessusImport = Class(TitObject)
  public
    Procedure doImport(aMsg:TdbmQueueMessage);
    Procedure Execute;
  end;
Implementation
{ProcessusImport}
Procedure ProcessusImport.doImport(aMsg:TdbmQueueMessage);
//procedure doImport(aMsg:TdbmQueueMessage);
var instB:WFClasseB; inst:TImportContext;
begin
  withP Transaction do
  begin
    instB := WFClasseB.Create;
    instB.unCode := 'B'+FormatDateTime('c',Now);
    instB.Caption := 'Session:'+instB.unCode;
  end;
  inst := TImportContext.Create;
  inst.ShareMode.Value := ISM_DEFAULT;
  inst.ImportMode := miInsert+miUpdate+miDisableEvents;
  inst.AdditionalValues.Values['uneChaine'] := 'uneChaineValue';
  inst.AdditionalValues.Values['unEntier'] := 1;
  inst.AdditionalValues.Values['unEtat:AsVariant'] := WFCAState_Etat1;
  inst.AdditionalValues.Values['oidWFClasseBRef'] := instB.InstanceOID;
  //
  inst.BinaryData.CopyFrom(aMsg.binaryContent,bcmShare);
  //
  Result := inst.Execute('testimport-wfclassea.dip','');
end;
Procedure ProcessusImport.Execute;
//Procedure Execute;
var aMsg:TdbmQueueMessage; aTopic:string; idx:Integer;
begin
  if Assigned(UserContext.TaskContext) then
  begin
    UserContext.TaskContext.AddMessage('MyProcessus.Execute');
    if Assigned(UserContext.TaskContext.EventContext.receivedMsg) then
      begin
        aMsg := UserContext.TaskContext.EventContext.receivedMsg;
        UserContext.TaskContext.AddMessage(Format('Message :%s',[aMsg.queueTopic]]);
        doImport(aMsg);
      end
      else
      begin
        UserContext.TaskContext.AddMessage('No message, process as a regular task');
      end;
  end;
end;
end.
</source>


Voir aussi:
Voir aussi:

Dernière version du 20 octobre 2014 à 11:26

property BinaryData:TfwBinary;

Cette propriété de type binaire permet de définir les données à importer lorsque celle-ci sont contenues dans un objet binaire.

Exemple :

Importation des données contenues dans un message de file d'attente

unit TestSYFREWF;
interface

Type
  ProcessusImport = Class(TitObject)
  public
    Procedure doImport(aMsg:TdbmQueueMessage);
    Procedure Execute;
  end;

Implementation

{ProcessusImport}

Procedure ProcessusImport.doImport(aMsg:TdbmQueueMessage);
//procedure doImport(aMsg:TdbmQueueMessage);
var instB:WFClasseB; inst:TImportContext;
begin
  withP Transaction do
   begin
     instB := WFClasseB.Create;
     instB.unCode := 'B'+FormatDateTime('c',Now);
     instB.Caption := 'Session:'+instB.unCode;
   end;

  inst := TImportContext.Create;
  inst.ShareMode.Value := ISM_DEFAULT;
  inst.ImportMode := miInsert+miUpdate+miDisableEvents;
  inst.AdditionalValues.Values['uneChaine'] := 'uneChaineValue';
  inst.AdditionalValues.Values['unEntier'] := 1;
  inst.AdditionalValues.Values['unEtat:AsVariant'] := WFCAState_Etat1;
  inst.AdditionalValues.Values['oidWFClasseBRef'] := instB.InstanceOID;
  //
  inst.BinaryData.CopyFrom(aMsg.binaryContent,bcmShare);
  //
  Result := inst.Execute('testimport-wfclassea.dip','');
end;

Procedure ProcessusImport.Execute;
//Procedure Execute;
var aMsg:TdbmQueueMessage; aTopic:string; idx:Integer;
begin
  if Assigned(UserContext.TaskContext) then
   begin
     UserContext.TaskContext.AddMessage('MyProcessus.Execute');
     if Assigned(UserContext.TaskContext.EventContext.receivedMsg) then
       begin
         aMsg := UserContext.TaskContext.EventContext.receivedMsg;
         UserContext.TaskContext.AddMessage(Format('Message :%s',[aMsg.queueTopic]]);

         doImport(aMsg);
       end
       else
       begin
         UserContext.TaskContext.AddMessage('No message, process as a regular task');
       end;
   end;
end;
end.

Voir aussi:

Contexte d'importationDéveloppement DSM