Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn More

View all

Sign in to view all badges

How to create a well-defined SOAP method definition?

Avatar

Avatar
Validate 1
Level 2
lukkyluke
Level 2

Likes

8 likes

Total Posts

28 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Applaud 5
View profile

Avatar
Validate 1
Level 2
lukkyluke
Level 2

Likes

8 likes

Total Posts

28 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Applaud 5
View profile
lukkyluke
Level 2

09-01-2019

Hi all,

So far we have been defining complex method responses as DOMElements.

Example:

<method library="xxx:customFunction.js" name="getEntity" static="true">

  <parameters>

   <param inout="in" label="Target ID" name="targetId" type="string"/>

   <param inout="in" label="Max count to be returned" name="maxCount" type="byte"/>

   <param inout="out" label="Response Xml" name="response" type="DOMElement"/>

  </parameters>

</method>

However, it would be much more convenient to be able to write a more well-defined response. For example when other third parties want to automatically generate classes from the Adobe Campaign wsdl. The usage of DOMElement (above) does not give us a well-defined response about the following information:

<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema​"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance​"

xmlns:ns="urn:nms:propositionRcp" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

   <SOAP-ENV:Body>

      <getEntityResponse SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

      xmlns="urn:nms:propositionRcp">

         <response xsi:type="ns:Element"

         SOAP-ENV:encodingStyle="http://xml.apache.org/xml-soap/literalxml">

            <entities>

               <entity id="1">

                  <title>TestTitle</title>

                  <shortText/>

                  <text>TestText</text>

                  <icon>2</icon>

               </entity>

               <entity id="2">

                  <title>TestTitle</title>

                  <shortText/>

                  <text>TestText</text>

                  <icon>1</icon>

               </entity>

            </entities>

         </response>

      </getEntityResponse>

   </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

I am thinking of something like this:

    <method library="xxx:customFunction.js" name="getEntity" static="true">

      <parameters>

        <param inout="in" label="Target ID" name="targetId" type="string"/>

        <param inout="in" label="Max count" name="maxCount" type="byte"/>

        <param inout="out" label="entities" name="entities" type="DOMElement">

          <param inout="out" label="entity" name="entity" type="DOMElement">

            <param inout="out" label="title" name="title" type="string"/>

            <param inout="out" label="shortText" name="shortText" type="string"/>

            <param inout="out" label="text" name="text" type="string"/>

            <param inout="out" label="icon" name="icon" type="string"/>

          </param>

       </param>

      </parameters>

    </method>

Has anyone been able to accomplish this?

Looking forward to your response

Replies

Avatar

Avatar
Contributor
MVP
wodnicki
MVP

Likes

941 likes

Total Posts

1,061 posts

Correct Reply

499 solutions
Top badges earned
Contributor
Shape 1
Give Back 100
Give Back 50
Give Back 25
View profile

Avatar
Contributor
MVP
wodnicki
MVP

Likes

941 likes

Total Posts

1,061 posts

Correct Reply

499 solutions
Top badges earned
Contributor
Shape 1
Give Back 100
Give Back 50
Give Back 25
View profile
wodnicki
MVP

10-01-2019

Hi,

Output fields can only be at the top level.

Thanks,

-Jon

Avatar

Avatar
Validate 1
Level 2
lukkyluke
Level 2

Likes

8 likes

Total Posts

28 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Applaud 5
View profile

Avatar
Validate 1
Level 2
lukkyluke
Level 2

Likes

8 likes

Total Posts

28 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Applaud 5
View profile
lukkyluke
Level 2

11-01-2019

Hi and thanks for your reply. I have noticed that it does not work but I am looking for a workaround

Avatar

Avatar
Contributor
MVP
wodnicki
MVP

Likes

941 likes

Total Posts

1,061 posts

Correct Reply

499 solutions
Top badges earned
Contributor
Shape 1
Give Back 100
Give Back 50
Give Back 25
View profile

Avatar
Contributor
MVP
wodnicki
MVP

Likes

941 likes

Total Posts

1,061 posts

Correct Reply

499 solutions
Top badges earned
Contributor
Shape 1
Give Back 100
Give Back 50
Give Back 25
View profile
wodnicki
MVP

11-01-2019

No real workaround, you can create your own soap endpoint with jssp's and blackjack if it's really needed.

Avatar

Avatar
Springboard
MVP
Florian_Courgey
MVP

Likes

93 likes

Total Posts

87 posts

Correct Reply

19 solutions
Top badges earned
Springboard
Validate 1
Establish
Contributor
Ignite 1
View profile

Avatar
Springboard
MVP
Florian_Courgey
MVP

Likes

93 likes

Total Posts

87 posts

Correct Reply

19 solutions
Top badges earned
Springboard
Validate 1
Establish
Contributor
Ignite 1
View profile
Florian_Courgey
MVP

29-03-2019

Hi wodnicki,

I'm interested in this question, what's blackjack? I googled it but it's too broad

Thanks