Das folgende Beispiel zeigt, wie Sie ConnectionScope mit ECS/JS nutzen, um mehr als einen SAP-Funktionsbaustein in derselben SAP-Verbindungssession aufzurufen.

ConnectionScope mit ECS/JS
$(document).ready(function () {
//
//
//
//
// ========== BEGIN SCOPE ==========
//
//
//
$.ajax({
    contentType: 'application/json; charset=utf-8',
    // if default ecs application, then empty string, if custom, then object>>  data: JSON.stringify('{applicationName: "ecc1"}')
    data: JSON.stringify(''),
    dataType: 'json',
    type: 'POST',
    url: '/_vti_bin/ERPConnectServiceRest.svc/BeginConnectionScope'
})
    .done(function (data_begin_scope) {
        console.log('scope begin: %o', data_begin_scope);
        if (data_begin_scope.error) {
            alert(JSON.stringify(data_begin_scope.error));
            return;
        }
        //
        //
        //
        //
        // ========== CREATE FUNCTION ==========
        //
        //
        //
        $.ajax({         
            contentType: 'application/json; charset=utf-8',
            data: JSON.stringify({
                //applicationName: 'ecc',
                // SET SCOPE HERE
                //             
         // <<<<<<<<<< SCOPE SET WITH EACH FUNCTION >>>>>>>>>>>
                connectionScope: data_begin_scope.result,
                //
                //
                name: 'BAPI_PO_CREATE'
            }),
            dataType: 'json',
            type: 'POST',
            url: '/_vti_bin/ERPConnectServiceRest.svc/CreateFunction'
        })
            .done(function (data_created) {             
                console.log('function created: %o', data_created);
                if (data_created.error) {
                    alert(JSON.stringify(data_created.error));
                }
                // set your fields here
                var po_header = data_created.result.exports.PO_HEADER.paramValue.values;
                po_header.DOC_TYPE = 'NB';
                po_header.PURCH_ORG = '1000';
                po_header.PUR_GROUP = '010';
                po_header.VENDOR = '0000001070';
  
                // Create an Item using a table PO_ITEMS
                var po_items = data.result.tables.PO_ITEMS.rows;              
                po_items.push({
                    PO_ITEM: "1",
                    PUR_MAT: "B-7000",
                    PLANT: "1000"
                });
  
                // Create and fill schedules using a table PO_ITEM_SCHEDULES
                var po_item_schedules = data.result.tables.PO_ITEM_SCHEDULES.rows;
                po_item_schedules.push({
                    PO_ITEM: "1",
                    DELIV_DATE: "20141022",
                    QUANTITY: 10
                });
  
                //
                //
                //
                //
                // ========== EXECUTE FUNCTION ==========
                //
                //
                //
                $.ajax({                     
                    contentType: 'application/json; charset=utf-8',
                    data: JSON.stringify({
                        //applicationName: 'ecc',
                        'function': data_created.result,
                        //
                        //
                        // <<<<<<<<<< SCOPE SET WITH EACH FUNCTION >>>>>>>>>>>
                        connectionScope: data_begin_scope.result
                        //
                        //
                        // data_created result of CreateFunction is input for ExecuteFunction
                    }),
                    dataType: 'json',
                    type: 'POST',
                    url: '/_vti_bin/ERPConnectServiceRest.svc/ExecuteFunction'
                })
                    .done(function (data_exec) {
                        console.log('function executed: %o', data_exec);
                        if (data_exec.error) {                             
                            // processing error, ecs tried but could not COMPLETE processomg the query
                            alert(JSON.stringify(data_exec.error));
                            return;
                        }                     
                        //
                        //
                        //
                        //
                        // ========== CREATE COMMIT ==========
                        //
                        //
                        //
                        $.ajax({                     
                            contentType: 'application/json; charset=utf-8',
                            data: JSON.stringify({
                                //applicationName: 'ecc',
                                //
                  //<<<<<<<<< SCOPE SET WITH EACH FUNCTION >>>>>>>>>>>
                                connectionScope: data_begin_scope.result,
                                //
                                //
                                name: 'BAPI_TRANSACTION_COMMIT'
                            }),
                            dataType: 'json',
                            type: 'POST',
                            url: '/_vti_bin/ERPConnectServiceRest.svc/CreateFunction',
                        })
                            .done(function (data_commit_created) {
                                console.log('commit created: %o', data_commit_created);
                                if (data_commit_created.error) {                             
                              // processing error, ecs tried but could not COMPLETE process the query
                                    alert(JSON.stringify(data_commit_created.error));
                                    return;
                                }                     
                                //
                                //
                                //
                                //
                                // ========== EXECUTE COMMIT ==========
                                //
                                //
                                //
                                $.ajax({                     
                                    contentType: 'application/json; charset=utf-8',
                                    data: JSON.stringify({
                                        //applicationName: 'ecc',
                                        //
                                        //
                                        // <<<<<<<<<< SCOPE SET WITH EACH FUNCTION >>>>>>>>>>>
                                        connectionScope: data_begin_scope.result,
                                        //
                                        //
                                        'function': data_commit_created.result
                                    }),
                                    dataType: 'json',
                                    type: 'POST',
                                    url: '/_vti_bin/ERPConnectServiceRest.svc/ExecuteFunction'
                                })
                                    .done(function (data_commit_exec) {
                                        console.log('commit executed: %o', data_commit_exec);
                                        if (data_commit_exec.error) {                             
                     // processing error, ecs tried but could not COMPLETE process the query
                                            alert(JSON.stringify(data_commit_exec.error));
                                            return;
                                        }                     
                                        //
                                        //
                                        //
                                        //
                                        // ========== END SCOPE ==========
                                        //
                                        //
                                        //
                                        $.ajax({                     
                                            contentType: 'application/json; charset=utf-8',
                                            data: JSON.stringify({
                                                //applicationName: 'ecc',
                                                //
                                                //                                             // <<<<< SCOPE SET WITH EACH FUNCTION >>>>>>>>
                                                connectionScope: data_begin_scope.result,
                                                //
                                                //
                                            }),
                                            dataType: 'json',
                                            type: 'POST',
                                            url: '/_vti_bin/ERPConnectServiceRest.svc/EndConnectionScope'
                                        })
                                            .done(function (data_scope_end) {
                                                console.log('end scope: %o', data_scope_end);
                                                if (data_scope_end.error) {                             
                      // processing error, ecs tried but could not COMPLETE process the query
                                                    alert(JSON.stringify(data_scope_end.error));
                                                    return;
                                                }                     
                                                //
                                                //
                                                //
                                                //
                                                // ========== ALL COMPLETE ==========
                                                //
                                                //
                                                //
                                                alert(data_scope_end.result);
                                                                     //<
                                            })
                                            .fail(function (data_scope_end_fail) {
                                   // connection/request error (ecs could not START processing
                                                       // the request / parameter signatures not correct)
                                                alert(JSON.stringify(data_scope_end_fail));
                                            });
                                    })
                                    .fail(function (data_commit_exec_fail) {
                                        // connection/request error (ecs could not START processing
                                                         // the request / parameter signatures not correct)
                                        alert(JSON.stringify(data_commit_exec_fail));
                                    });
                            })
                            .fail(function (data_commit_created_fail) {
                                // connection/request error (ecs could not START processing
                                             // the request / parameter signatures not correct)
                                alert(JSON.stringify(data_commit_created_fail));
                            });
                    })
                    .fail(function (data_exec_fail) {
                        // connection/request error (ecs could not START processing
                                  // the request / parameter signatures not correct)
                        alert(JSON.stringify(data_exec_fail));
                    });        
            })
            .fail(function (data_create_fail) {
                // connection/request error (ecs could not START processing
                       // the request / parameter signatures not correct)
                alert(JSON.stringify(data_create_fail));
            });
    })
    .fail(function (begin_scope_fail) {
        // connection/request error (ecs could not START processing
           // the request / parameter signatures not correct)
        alert(JSON.stringify(begin_scope_fail));
    });
});