2017-10-06 15 views
0

J'essaie d'insérer des données dans une base de données AS400 avec un adaptateur BizTalk DB2.Comment ajouter plusieurs lignes avec Biztalk DB2 Adapter

Je traite facilement avec une insertion d'une rangée. Cependant, dans la carte utilisée sur l'adaptateur DB2, mon schéma source a un noeud pouvant être répété. Cela signifie que j'ai besoin, parfois, d'insérer plusieurs lignes à la fois.

Malheureusement, et pour certaines raisons, je ne peux pas utiliser une orchestration ... Ce que je veux faire est de générer un message de sortie ressemblant à:

<?xml version="1.0" encoding="utf-8"?> 
<ns0:INSERT xmlns:ns0="http://myNamespace"> 
<sync> 
     <after> 
      <MyElement id="0" value1="toto" value2="tutu"> 
      </MyElement> 
      <MyElement id="1" value1="toto" value2="tutu"> 
      </MyElement> 
    </after> 
</sync> 
</ns0:INSERT> 

Ce message n'insérez rien et laissez-moi avec cette erreur:

Table MyTable ?MyDataBase ? of *N incorrect for this operation. SQLSTATE: 55019, SQLCODE: -7008 

(désolé pour la traduction, l'erreur est d'abord écrit en français ...)

Je viens à un point où je me demande si c'est ONL y possible de faire ce que je veux de cette façon ...

Avez-vous une idée?

+0

C'est normalement exactement comme vous insérez plusieurs lignes dans DB2. Supposons que votre nom de table soit 'MyElement'. Comment avez-vous généré le schéma? L'adaptateur DB2, en particulier, est très vif et restrictif, alors assurez-vous de prendre exactement le même paramètre dans votre port d'envoi que lorsque vous avez généré le (s) schéma (s). –

Répondre

0

Merci pour les réponses. Je découvre ce qui ne va pas. Pas de lien avec l'insertion de plusieurs lignes. La façon dont je montre est exactement comment vous devez insérer plusieurs lignes.

Le SQLSTATE: 55019, SQLCODE: -7008 semble provenir de la consignation de l'heure d'exécution de la base de données qui a été désactivée.

Maintenant, ce problème est résolu.

0

D'abord, il n'y a aucune raison légitime pour empêcher l'orchestration. Nous pouvons vous aider à dissiper les idées fausses qu'ils pourraient avoir sur cette question.

Cependant, MyElement est un nom de table inhabituel. Êtes-vous sûr que c'est correct?

+0

La raison légitime pour éviter l'orchestration est que vous devez arrêter l'application Biztalk pour déployer des ressources lorsque vous disposez d'une orchestration. Et dans mon cas, je veux éviter ce genre de déploiement. – fcaillaud

+0

Ensuite, pour ** MyElement **, ce n'est évidemment pas le vrai nom de ma table. Je l'utilise comme exemple. – fcaillaud

+0

@fcaillaud FYI, ce que vous décrivez comme une raison est ** complètement faux **. Vous devez souvent redémarrer les instances hôtes, et non les applications, lors du déploiement, mais les orchestrations n'ont rien de spécifique à cela. * Tout type d'artefact * peut nécessiter un redémarrage. –