Using RestApiCallNode instead of RestconfApiCallNode and updating templates accordingly.
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / sotn_nni / GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.xml
1 <service-logic xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="GENERIC-RESOURCE-API" version="${project.version}">\r
2     <method rpc="sotn-vf-operation-uni-activate" mode="sync">\r
3         <block atomic="true">\r
4             <switch test="`$service-data.vnfs.vnf_length`">\r
5                 <outcome value="">\r
6                     <return status="failure">\r
7                         <parameter name="ack-final" value="Y"/>\r
8                         <parameter name="error-code" value="500"/>\r
9                         <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data"/>\r
10                     </return>\r
11                 </outcome>\r
12             </switch>\r
13             <for index="idx" start="0" end="`$service-data.vnfs.vnf_length`">\r
14                 <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
15                     <outcome value="true">\r
16                         <block atomic="true">\r
17                             <set>\r
18                                 <parameter name="vnf-index" value="`$idx`"/>\r
19                             </set>\r
20                             <set>\r
21                                 <parameter name="tmp.vnf-id" value="`$vf-module-topology-operation-input.vnf-information.vnf-id`"/>\r
22                             </set>\r
23                         </block>\r
24                     </outcome>\r
25                 </switch>\r
26             </for>\r
27             <execute plugin="org.onap.ccsdk.sli.plugins.prop.PropertiesNode" method="readProperties">\r
28                 <parameter name="fileName" value="%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties"/>\r
29                 <parameter name="contextPrefix" value="prop"/>\r
30             </execute>\r
31             <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`">\r
32                 <outcome value="0">\r
33                     <return status="failure">\r
34                         <parameter name="ack-final" value="Y"/>\r
35                         <parameter name="error-code" value="500"/>\r
36                         <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data"/>\r
37                     </return>\r
38                 </outcome>\r
39                 <outcome value="">\r
40                     <return status="failure">\r
41                         <parameter name="ack-final" value="Y"/>\r
42                         <parameter name="error-code" value="500"/>\r
43                         <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data"/>\r
44                     </return>\r
45                 </outcome>\r
46                 <outcome value="Other">\r
47                     <block atomic="true">\r
48                         <set>\r
49                             <parameter name="vf-module-length" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`"/>\r
50                         </set>\r
51                         <for index="idx" start="0" end="`$vf-module-length`">\r
52                             <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
53                                 <outcome value="true">\r
54                                     <block atomic="true">\r
55                                         <set>\r
56                                             <parameter name="tmp.vidx" value="`$idx`"/>\r
57                                             <parameter name="ctx.vf-module-data." value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`"/>\r
58                                         </set>\r
59                                         <set>\r
60                                             <parameter name="vf-module-request-input." value="`$ctx.vf-module-data.vf-module-request-input.`"/>\r
61                                         </set>\r
62                                     </block>\r
63                                 </outcome>\r
64                             </switch>\r
65                         </for>\r
66                     </block>\r
67                 </outcome>\r
68             </switch>\r
69             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="generic-vnf" key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id" pfx="tmp.aai.generic-vnf" local-only="false">\r
70                 <!--AND depth = '0'"-->\r
71                 <outcome value="success">\r
72                     <block>\r
73                         <for silentFailure="true" index="vidx" start="0" end="`$tmp.aai.generic-vnf.relationship-list.relationship_length`">\r
74                             <switch test="`$tmp.aai.generic-vnf.relationship-list.relationship[$vidx].related-to`">\r
75                                 <outcome value="uni">\r
76                                     <block atomic="true">\r
77                                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="uni" key="uni.id = $tmp.aai.generic-vnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value" pfx="tmp.aai.uni" local-only="false">\r
78                                             <outcome value="success">\r
79                                                 <block>\r
80                                                     <set>\r
81                                                         <!--\r
82                                                         <parameter name='`tmp.unis.uni[$vidx].tpId`' value="`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />\r
83                                                         -->\r
84                                                         <parameter name="`tmp.unis.uni[$vidx].`" value="`$tmp.aai.uni.`"/>\r
85                                                     </set>\r
86                                                     <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="split">\r
87                                                         <parameter name="original_string" value="`tmp.aai.uni.tp-id`"/>\r
88                                                         <parameter name="regex" value="[^-]+$"/>\r
89                                                         <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
90                                                         <outcome value="success">\r
91                                                             <set>\r
92                                                                 <parameter name="tmp.src.ltpId" value="`$param-prefix[$param-prefix_length -1]`"/>\r
93                                                             </set>\r
94                                                         </outcome>\r
95                                                         <outcome value="failure">\r
96                                                             <return status="failure">\r
97                                                                 <parameter name="error-code" value=""/>\r
98                                                                 <parameter name="error-message" value="An error occured while splitting sna1_route"/>\r
99                                                             </return>\r
100                                                         </outcome>\r
101                                                     </execute>\r
102                                                     <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="pnf" key="'pnf.pnf-name = $tmp.unis.uni[$vidx].pnf-name' AND depth = '0'" pfx="tmp.aai.pnf" local-only="false">\r
103                                                         <!--\r
104                                                         <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
105                                                         -->\r
106                                                         <!--            resource="generic-vnf" -->\r
107                                                         <!--\r
108                                                                 key="'generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id'\r
109                                                         -->\r
110                                                         <!--            AND depth = '0'"-->\r
111                                                         <!--\r
112                                                                 pfx='tmp.aai.generic-vnf' local-only='false' >\r
113                                                         -->\r
114                                                         <outcome value="success">\r
115                                                             <block>\r
116                                                                 <set>\r
117                                                                     <parameter name="`$tmp.unis.uni[$vidx].node-id`" value="`$tmp.aai.pnf.pnf-id`"/>\r
118                                                                 </set>\r
119                                                                 <for silentFailure="true" index="ridx" start="0" end="`$tmp.aai.pnf.relationship-list.relationship_length`">\r
120                                                                     <switch test="`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`">\r
121                                                                         <outcome value="thirdparty-controller">\r
122                                                                             <block atomic="true">\r
123                                                                                 <set>\r
124                                                                                     <parameter name="`$tmp.unis.uni[$vidx].thirdparty-sdnc-id`" value="`$tmp.aai.pnf.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`"/>\r
125                                                                                 </set>\r
126                                                                             </block>\r
127                                                                         </outcome>\r
128                                                                         <outcome value="network-resource">\r
129                                                                             <block atomic="true">\r
130                                                                                 <set>\r
131                                                                                     <parameter name="`$tmp.unis.uni[$vidx].network-id`" value="`$tmp.aai.pnf.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`"/>\r
132                                                                                 </set>\r
133                                                                                 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="network-resource" key="'network-resource.network-id = $tmp.unis.uni[$vidx].network-id' AND depth = '0'" pfx="tmp.aai.network-resource" local-only="false">\r
134                                                                                     <outcome value="success">\r
135                                                                                         <set>\r
136                                                                                             <parameter name="`$tmp.unis.uni[$vidx].network-id`" value="`$tmp.aai.network-resource.network-id`"/>\r
137                                                                                             <parameter name="`$tmp.unis.uni[$vidx].provider-id`" value="`$tmp.aai.network-resource.provider-id`"/>\r
138                                                                                             <parameter name="`$tmp.unis.uni[$vidx].client-id`" value="`$tmp.aai.network-resource.client-id`"/>\r
139                                                                                             <parameter name="`$tmp.unis.uni[$vidx].te-topo-id`" value="`$tmp.aai.network-resource.te-topo-id`"/>\r
140                                                                                             <parameter name="`$tmp.unis.uni[$vidx].network-type`" value="`$tmp.aai.network-resource.network-type`"/>\r
141                                                                                         </set>\r
142                                                                                     </outcome>\r
143                                                                                 </get-resource>\r
144                                                                             </block>\r
145                                                                         </outcome>\r
146                                                                     </switch>\r
147                                                                 </for>\r
148                                                             </block>\r
149                                                         </outcome>\r
150                                                     </get-resource>\r
151                                                 </block>\r
152                                             </outcome>\r
153                                         </get-resource>\r
154                                     </block>\r
155                                 </outcome>\r
156                             </switch>\r
157                         </for>\r
158                         <switch test="`$tmp.unis.uni_length < 2`">\r
159                             <outcome value="true">\r
160                                 <return status="success">\r
161                                     <parameter name="ack-final-indicator" value="Y"/>\r
162                                     <parameter name="error-code" value="200"/>\r
163                                     <parameter name="error-message" value="`$error-message`"/>\r
164                                 </return>\r
165                             </outcome>\r
166                         </switch>\r
167                     </block>\r
168                 </outcome>\r
169             </get-resource>\r
170             <call module="GENERIC-RESOURCE-API" rpc="sotn-get-otn-tunnel-path-from-oof" mode="sync"/>\r
171             <for index="vidx" start="0" end="`$tmp.unis.uni_length`">\r
172                 <block atomic="true">\r
173                     <set>\r
174                         <parameter name="oof.vpn." value="`$tmp.unis.uni[$vidx].`"/>\r
175                     </set>\r
176                     <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="network-resource" key="network-resource.network-id = $oof.vpn.network-id" pfx="tmp.aai.network-resource" local-only="false">\r
177                         <outcome value="success">\r
178                             <block>\r
179                                 <for index="ridx" start="0" end="`$tmp.aai.network-resource.relationship-list.relationship_length`">\r
180                                     <switch test="`$tmp.aai.network-resource.relationship-list.relationship[$ridx].related-to`">\r
181                                         <outcome value="esr-thirdparty-sdnc">\r
182                                             <set>\r
183                                                 <parameter name="prop.sdncRestApi.thirdpartySdnc.id" value="`$tmp.aai.network-resource.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`"/>\r
184                                             </set>\r
185                                         </outcome>\r
186                                     </switch>\r
187                                 </for>\r
188                             </block>\r
189                         </outcome>\r
190                         <outcome value="not-found">\r
191                             <return status="failure">\r
192                                 <parameter name="ack-final" value="Y"/>\r
193                                 <parameter name="error-code" value="500"/>\r
194                                 <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`"/>\r
195                             </return>\r
196                         </outcome>\r
197                         <outcome value="Other">\r
198                             <return status="failure">\r
199                                 <parameter name="ack-final" value="Y"/>\r
200                                 <parameter name="error-code" value="500"/>\r
201                                 <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`"/>\r
202                             </return>\r
203                         </outcome>\r
204                     </get-resource>\r
205                     <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="esr-thirdparty-sdnc" key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $prop.sdncRestApi.thirdpartySdnc.id AND depth = '1'" pfx="tmp.aai.esr-thirdparty-sdnc" local-only="false">\r
206                         <outcome value="success">\r
207                             <set>\r
208                                 <parameter name="prop.sdncRestApi.thirdpartySdnc.url" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`"/>\r
209                                 <parameter name="prop.sdncRestApi.thirdpartySdnc.user" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`"/>\r
210                                 <parameter name="prop.sdncRestApi.thirdpartySdnc.password" value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`"/>\r
211                                 <!--\r
212                                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
213                                 -->\r
214                                 <!--\r
215                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-network:networks'`" />\r
216                                 -->\r
217                                 <!--\r
218                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
219                                 -->\r
220                                 <!--\r
221                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
222                                 -->\r
223                                 <!--<parameter name="format" value="json"/>-->\r
224                                 <!--<parameter name="httpMethod" value="get"/>-->\r
225                                 <!--\r
226                                 <parameter name="responsePrefix" value="topology"/>\r
227                                 -->\r
228                                 <!--\r
229                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
230                                 -->\r
231                                 <!--\r
232                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
233                                 -->\r
234                                 <!--\r
235                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
236                                 -->\r
237                                 <!--\r
238                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
239                                 -->\r
240                             </set>\r
241                         </outcome>\r
242                         <outcome value="not-found">\r
243                             <return status="failure">\r
244                                 <parameter name="ack-final" value="Y"/>\r
245                                 <parameter name="error-code" value="500"/>\r
246                                 <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`"/>\r
247                             </return>\r
248                         </outcome>\r
249                         <outcome value="Other">\r
250                             <return status="failure">\r
251                                 <parameter name="ack-final" value="Y"/>\r
252                                 <parameter name="error-code" value="500"/>\r
253                                 <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`"/>\r
254                             </return>\r
255                         </outcome>\r
256                     </get-resource>\r
257                     <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
258                         <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`"/>\r
259                         <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`"/>\r
260                         <parameter name="format" value="json"/>\r
261                         <parameter name="httpMethod" value="post"/>\r
262                         <parameter name="responsePrefix" value="token-result"/>\r
263                         <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
264                         <parameter name="trustStorePassword" value="adminadmin"/>\r
265                         <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
266                         <parameter name="keyStorePassword" value="adminadmin"/>\r
267                         <outcome value="success">\r
268                             <set>\r
269                                 <parameter name="prop.sdncRestApi.token_id" value="`$token-result.data.token_id`"/>\r
270                             </set>\r
271                         </outcome>\r
272                         <outcome value="failure">\r
273                             <return status="failure">\r
274                                 <parameter name="ack-final" value="Y"/>\r
275                                 <parameter name="error-code" value="500"/>\r
276                                 <parameter name="error-message" value="Error executing get token rest api"/>\r
277                             </return>\r
278                         </outcome>\r
279                     </execute>\r
280                     <call module="GENERIC-RESOURCE-API" rpc="sotn-create-otn-tunnel" mode="sync"/>\r
281                     <set>\r
282                         <parameter name="ietf-eth-tran-service_etht-svc.globals.etht-svc-bandwidth-profiles[0].bandwidth-profile-type" value="ietf-eth-tran-types:mef-10-bwp"/>\r
283                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-type" value="ietf-eth-tran-types:p2p-svc"/>\r
284                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].admin-status" value="ietf-te-types:tunnel-state-up"/>\r
285                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-port-id" value="0"/>\r
286                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].service-classification-type" value="ietf-eth-tran-types:port-classification"/>\r
287                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-port-id" value="1"/>\r
288                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].service-classification-type" value="ietf-eth-tran-types:port-classification"/>\r
289                     </set>\r
290                     <set>\r
291                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-provider-id" value="`$oof.vpn.access-provider-id`"/>\r
292                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-client-id" value="`$oof.vpn.access-client-id`"/>\r
293                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-topology-id" value="`$oof.vpn.access-topology-id`"/>\r
294                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-node-id" value="`$oof.vpn.access-node-id`"/>\r
295                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-ltp-id" value="`$oof.vpn.src-access-ltp-id`"/>\r
296                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-node-id" value="`$oof.vpn.access-node-id`"/>\r
297                         <parameter name="ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-ltp-id" value="`$oof.vpn.dst-access-ltp-id`"/>\r
298                     </set>\r
299                     <switch test="`$prop.sdncRestApi.token_id`">\r
300                         <outcome value="">\r
301                             <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestApiCallNode" method="sendRequest">\r
302                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`"/>\r
303                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sotn-ethernet-service.json'`"/>\r
304                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>\r
305                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>\r
306                                 <parameter name="format" value="json"/>\r
307                                 <parameter name="httpMethod" value="patch"/>\r
308                                 <parameter name="dirPath" value="/opt/onap/sdnc/restconfapi/yang"/>\r
309                                 <parameter name="responsePrefix" value="vpn-result"/>\r
310                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
311                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
312                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
313                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
314                                 <outcome value="failure">\r
315                                     <return status="failure">\r
316                                         <parameter name="ack-final" value="Y"/>\r
317                                         <parameter name="error-code" value="500"/>\r
318                                         <parameter name="error-message" value="Error executing Create vpn rest api"/>\r
319                                     </return>\r
320                                 </outcome>\r
321                                 <outcome value="success">\r
322                                     <block atomic="true"/>\r
323                                 </outcome>\r
324                             </execute>\r
325                         </outcome>\r
326                         <outcome value="Other">\r
327                             <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestApiCallNode" method="sendRequest">\r
328                                 <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`"/>\r
329                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sotn-ethernet-service.json'`"/>\r
330                                 <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`"/>\r
331                                 <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`"/>\r
332                                 <parameter name="format" value="json"/>\r
333                                 <parameter name="httpMethod" value="patch"/>\r
334                                 <parameter name="dirPath" value="/opt/onap/sdnc/restconfapi/yang"/>\r
335                                 <parameter name="responsePrefix" value="vpn-result"/>\r
336                                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
337                                 <parameter name="trustStorePassword" value="adminadmin"/>\r
338                                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
339                                 <parameter name="keyStorePassword" value="adminadmin"/>\r
340                                 <parameter name="customHttpHeaders" value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`"/>\r
341                                 <outcome value="failure">\r
342                                     <return status="failure">\r
343                                         <parameter name="ack-final" value="Y"/>\r
344                                         <parameter name="error-code" value="500"/>\r
345                                         <parameter name="error-message" value="Error executing Create vpn rest api"/>\r
346                                     </return>\r
347                                 </outcome>\r
348                                 <outcome value="success">\r
349                                     <block atomic="true"/>\r
350                                 </outcome>\r
351                             </execute>\r
352                         </outcome>\r
353                     </switch>\r
354                 </block>\r
355             </for>\r
356             <return status="success">\r
357                 <parameter name="ack-final-indicator" value="Y"/>\r
358                 <parameter name="error-code" value="200"/>\r
359                 <parameter name="error-message" value="`$error-message`"/>\r
360             </return>\r
361         </block>\r
362     </method>\r
363 </service-logic>