使用nodejs调用C4C的Odata服务创建销售订单-阿里云开发者社区

开发者社区> python技术君> 正文

使用nodejs调用C4C的Odata服务创建销售订单

简介: 使用nodejs调用C4C的Odata服务创建销售订单
+关注继续查看

var request = require('request');

var url = "https://jerry.c4c.saphybriscloud.cn/sap/c4c/odata/cust/v1/zjerrysalesorder";

var getTokenOptions = {

       url: url,

       method: "GET",

       json:true,

       headers: {

           "content-type": "application/json",

           'Authorization': "Basic ABCDE00ZXN0MQ==",

           "x-csrf-token" :"fetch"

       }

};

function getToken() {

 return new Promise(function(resolve,reject){

     var requestC = request.defaults({jar: true});

     console.log("Step1: get csrf token via url: " + url );

     requestC(getTokenOptions,function(error,response,body){

      var csrfToken = response.headers['x-csrf-token'];

      if(!csrfToken){

         reject({message:"token fetch error"});

         return;

      }

      console.log("Step1: csrf token got: " + csrfToken);

      resolve(csrfToken);

     });  

    });

}

function createSalesOrder(token, oPostData){

return new Promise(function(resolve, reject){

 var requestC = request.defaults({jar: true});

       var createOptions = {

             url: "https://jerry.c4c.saphybriscloud.cn/sap/c4c/odata/cust/v1/zjerrysalesorder/CustomerQuoteCollection",

             method: "POST",

             json:true,

             headers: {

                 "content-type": "application/json",

                 'x-csrf-token': token

             },

             body:oPostData

       };

       requestC(createOptions,function(error,response,data){

           if(error){

               reject(error.message);

           }else {

              resolve(data);

           }

       });

});

}

getToken().then(function(token) {

 var payload = {

   "Name": "Jerry Test 2019-1-12 19:52PM",

   "TypeCode": "2059",

   "BuyerID":"Jerry open ID",

   "PartyID":"60102",

   "CustomerQuoteText":[{

     "Text": "test comment by Jerry Wang",

     "TypeCode": "10024"

   }],

   "CustomerQuoteItem":[{

     "ProductID": "1042416"

   }],

   "CustomerQuoteItemProposal":[{

     "ProductUUID": "00163E72-09C6-1EE8-BBDC-AC5F0CB0D795",

     "Quantity": "1",

     "unitCode": "EA"

   }]

 };

 createSalesOrder(token, payload).then(function(oData){

   console.log("created Sales Order by OData: " + oData.d.results.ID);

 });

});

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七:   程序包的创建与应用(聪明在于学习,天才在于积累!) ——通过知识共享树立个人品牌。
1210 0
如何手动创建SAP S/4HANA的生产订单
如何手动创建SAP S/4HANA的生产订单
11 0
Node.js调用mysql的存储过程
例子仅在windows下测试通过,没有放在linux下测试。如有问题,可以电邮给我~ 1、安装node.js、mysql,此处略(自行搜索吧)…; 2、创建一个名为test的数据库,然后建一张名为user_info的表(仅供测试)… 这里假定mysql使用的用户名为root,密码为123456 相应...
908 0
如何用 SAP BTP 平台上的图形建模器创建一个 OData 服务
如何用 SAP BTP 平台上的图形建模器创建一个 OData 服务
9 0
从零开始学习 asp.net core 2.1 web api 后端api基础框架(三)-创建Data Transfer Object
原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(三)-创建Data Transfer Object 版权声明:本文为博主原创文章,未经博主允许不得转载。
822 0
SAP S4HANA使用ABAP获得生产订单的状态
SAP S4HANA使用ABAP获得生产订单的状态
24 0
SAP S/4HANA生产订单创建之后,为什么会自动执行action
SAP S/4HANA生产订单创建之后,为什么会自动执行action
5 0
SAP CRM Service Order(服务订单)的状态字段设计原理介绍
SAP CRM Service Order(服务订单)的状态字段设计原理介绍
12 0
1853
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载