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:
| Whos here now: Members 0 Guests 0 Bots & Crawlers 1 |