2016-05-04 12 views
1

Ich habe eine BizTalk-Lösung, die eine SMS an unseren Client senden würde, sobald ihr Telefon in unserem System registriert wurde. Leider würde die SMS so XML-Tags enthalten.So entfernen Sie <string> in SMS

< string> Ihre PIN ist 1234. </string>

Wie kann ich die < string> -Tag in der SMS entfernen? Ich habe sichergestellt, dass der Nachrichtentyp in meiner Orchestrierung korrekt ist und dass ich den folgenden Code in meiner Construct Message-Form habe.

strCellNos = classHelper.getElement(SendSMStoCustomerRequest, "cell_number"); 
strSMS = classHelper.getElement(SendSMStoCustomerRequest, "message"); 
msg_SendSMStoCustomer.parameter = strSMS; 
msg_SendSMStoCustomer(SMTP.Subject) = "Test Message for " + strCellNos ; 
msg_SendSMStoCustomer(SMTP.From) = "[email protected]"; 
msg_SendSMStoCustomer(SMTP.SMTPHost) = "SMTPHOST"; 
msg_SendSMStoCustomer(SMTP.EmailBodyText) = strSMS ; 
msg_SendSMStoCustomer(SMTP.EmailBodyTextCharset)="UTF-8"; 
msg_SendSMStoCustomer(SMTP.SMTPAuthenticate) = 0; 
+0

Sollten Sie die Texteigenschaft des Elements und nicht das Element selbst verwenden? – Brody

+0

Brody, ich bin mir nicht sicher, was du genau meinst, da ich bei BizTalk sehr neu bin. Wie kann die Texteigenschaft wie gewünscht verwendet werden? – Artline157

+0

Wenn Sie getElement verwenden, gibt es möglicherweise ein ganzes Element zurück, das bei Verwendung als Zeichenfolge die Tags des umhüllenden Elements zurückgibt. Sie müssen den Elementtext mit getElement (...), Text oder etwas ähnlichem (vielleicht innerText) abrufen, das nur den inneren Textwert des Elements zurückgibt. – Brody

Antwort

1

Ich werde meine Antwort von MSDN hier wiederholen.

Behandeln Sie die ausgehende Nachricht als flache Datei mit einem Flat File Schema und dem Flat File Assembler in der Pipeline.

Vertrauen Sie mir, das ist sehr, sehr einfach. All diese Dinge, die Sie versuchen, sind Probleme zu beheben, die Sie eigentlich gar nicht haben sollten.

Bitte nehmen Sie einen Schritt zurück und erstellen Sie am Anfang msg_SendSMStoCustomer als Flat Dateityp. Dann wird es einfach funktionieren, das verspreche ich dir.

+0

Bitte verstehen Sie, es gibt nichts Besonderes an diesem. Es ist nur eine 1-Feld-Flat-Field-Nachricht. Du bist weit über das Denken. Es gibt viele Artikel und Artikel zum Erstellen von Flat Files. –

+0

Dies sind die Schritte, die ich ausgeführt habe, um das Flatfile-Schema zu erstellen und zuzuordnen. 1.Ein FlatFile-Schema erstellt. 2. Eine BizTalk-Zuordnung erstellt, die das XML-Schema, von dem die Nachricht kommt, dem Flat-File-Schema zuordnet. 3. Mapped das Flat-File-Schema in Flat File Assembler in meiner Sende-Pipeline unter Document-Schema-Feld. 4. Mapped das Flat-File-Schema in meiner Multi-Part-Nachricht in Orchestration. 5. In der Construct Message Shape habe ich diesen Code im nächsten Kommentarabschnitt hinzugefügt. – Artline157

+0

PhoneNum = classHelper.getElementByTag (msg_SendSMStoCustomer, "phone"); Nachricht = classHelper.getElementByTag (msg_SendSMStoCustomer, "Nachricht"); msg_SendSMStoCustomer.parameter = strMessage; msg_SendSMStoCustomer (SMTP.Subject) = "Testnachricht für" + PhoneNum; msg_SendSMStoCustomer (SMTP.From) = "[email protected]"; msg_SendSMStoCustomer (SMTP.SMTPHost) = "SMTPHOST"; msg_SendSMStoCustomer (SMTP.SMTPAuthenticate) = 0; *** Die Klasse Helper.getElementByTag ist eine Klasse, die die Telefonnummer und die Nachrichtenfolgen extrahiert, die aus dem Anforderungsschema stammen. – Artline157

0

Sie können hier einen Blick auf eine ähnliche Frage nehmen: Send message of System.String is wrapping xml

Grundsätzlich wird BizTalk einen string Knoten um Ihre System.String Variablen wickeln, wenn Sie es auf eine Nachricht zuweisen.

Die vorgeschlagene Antwort in der verknüpften Frage stellt eine Hilfsmethode zur Verfügung, die dies umgeht.

+0

Also habe ich den Code in meinem Helfer und den folgenden Code in der Form der Orchestrierung Nachrichten Zuweisung hinzugefügt: Nachricht = new System.Xml.XmlDocument(); Helper.H13_SendSMStoCustomer.LoadXLANGMsgFromString ("test", Message); aber ich stoße weiterhin auf Fehler "Argument '2': kann nicht von 'System.Xml.XmlDocument' zu 'Microsoft.XLANGs.BaseTypes.XLANGMessage' konvertieren und jetzt bin ich wieder fest. Bitte helfen Sie mir, da ich seit 3 ​​Tagen auf diesem Thema sitze. – Artline157

+0

Sie können das nicht tun. Wenn Sie die ausgehende Nachricht nur am Anfang korrekt erstellen, ist keine dieser Fragen ein Problem. –