2015-08-25 1 views
2

J'essaie de créer un service qui écrit chaque fois le pipeline d'entrée et de sortie (xmldata), celui des services installés est appelé. Comment mon service doit-il savoir quand un autre service est appelé? Y at-il un outil intégré pour attraper dans & pipeline et enregistrer dans un fichier ou toute autre source?Integration Server - sauvegarde du pipeline dans la base de données

Répondre

3

Vous pouvez utiliser une accumulation dans le service de webMethods dans WmPublic package:

pub.flow:savePipelineToFile 

Notez qu'il est pas recommandé d'utiliser « savePipelineToFile » dans la production pour des performances évidentes/raisons de ressources. Et bien sûr, pour charger le pipeline de l'utilisation du fichier:

pub.flow:restorePipelineFromFile 

Le flux de travail habituel de débogage dans webMethods est:

  1. Ajouter l'étape « savePipelineToFile » comme la première instruction dans votre flux un service.
  2. Exécuter le service de flux ou exécuter à partir de certains clients qui déclencheront le service de flux.
  3. Désactiver l'étape "savePipelineToFile" dans le service de flux. Ajoutez l'étape "restorePipelineFromFile" tout en haut de votre service de flux.
  4. Exécutez webMethods Designer en mode Débogage et parcourez. Une fois que le passe par l'étape «restorePipelineFromFile», vous devriez voir le contenu complet du pipeline , y compris les entrées transmises par le client . Si vous continuez à parcourir votre étape de service de flux par étape , vous devriez voir la sortie finale.

Les services "savePipelineToFile" et "restorePipelineFromFile" sont très utiles pour déboguer vos services. Le fichier « pipeline » sera situé à:

IntegrationServer\pipeline 

Si vos besoins exigent que vous avez besoin pour produire des fichiers plats xml puis utilisez les éléments suivants:

Pour sérialiser documents au format XML (package WmPublic)

pub.xml:documentToXMLString 

pour écrire chaîne xml fichier (package WmPublic)

pub.file:stringToFile 

Hope it helps !

EDIT:

Par défaut, les en-têtes de savon sont cachés. La plupart du temps, vous n'avez pas besoin des en-têtes de savon, mais vous pouvez forcer webMethods à ajouter les en-têtes de savon au pipeline en procédant comme suit.

1) Cliquez sur le descripteur de service Web.

enter image description here

2) Dans le panneau Propriétés, définissez "Pipeline en-têtes DEBLOQUE" true.

enter image description here

Les en-têtes de savon ne figurent pas dans votre pipeline au moment de la conception. Il n'existera qu'à l'exécution. Si vous voulez voir le contenu de l'en-tête de savon, vous devrez utiliser la technique "savePipelineToFile"/"restorePipelineFromFile" que j'ai décrite précédemment.

Pour que l'en-tête de savon apparaisse au moment de la conception, vous devez effectuer un mappage implicite dans les champs d'en-tête du savon comme s'ils s'y trouvaient.

+0

Mais savePipelineToFile sauvera-t-il tout xmldata du document y compris l'en-tête de savon? – gudek

+0

Vous auriez dû mentionner dans votre question initiale que vous avez également besoin des en-têtes de savon (mis à jour ma réponse). Le fichier savePipelineToFile enregistrera tout ce qui se trouve dans votre pipeline lors de l'exécution dans la structure XML du pipeline webMethod. Si ce n'est pas ce que vous voulez, vous devrez sérialiser vous-même les documents du pipeline en utilisant "documentToXmlString" comme décrit dans ma réponse. – TchiYuan