BinaryData (TImportContext)

De Wiki1000
(Différences entre les versions)
(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... »)
 
 
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:

Version actuelle en date du 20 octobre 2014 à 12: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

Outils personnels