`
JerryWang_SAP
  • 浏览: 1030403 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

使用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);
  });
});

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

0
0
分享到:
评论

相关推荐

    nodejs调用C++代码

    6. **在Node.js中加载和调用**:在JavaScript代码中,你可以使用`require`函数加载生成的.node模块,然后就可以像调用普通的JavaScript函数一样调用你的C++函数了。 7. **测试**:编写JavaScript测试脚本,验证C++...

    基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打

    基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打印,最后可参考资料偏少,由于项目紧急且对NodeJS的熟悉程度目前也还不够,所以转而...

    nodejs调用建行互联网银企被扫支付接口加密及验签Demo+java封装jar包

    该java源代码将建行互联网银企被扫支付接口java版加密及验签Demo 封装成jar包,方便nodejs调用。 1.将建行Java版加密Demo打包成jar包:CCBParam.jar。并将jar包放到服务器的相应文件夹下。 2.根据订单号、金额、付款...

    通过nodejs 调用 海泰方圆的usbkey 接口

    通过nodejs 调用 海泰方圆的usbkey 接口,需要完整代码和我联系40744069@qq.com

    nodejs调用cmd命令实现复制目录

    本文中使用了fs模块的writeFile方法来创建批处理文件,并用exec来调用它。 知识点六:使用call命令调用批处理文件 在写入批处理文件后,通过exec函数执行“call”命令可以调用当前工作目录下的批处理文件。这里的...

    使用 ftp-srv 在 nodejs 创建FTP服务器,简单版

    在这个场景中,我们将探讨如何使用Node.js中的`ftp-srv`库来创建一个简单的FTP服务器。`ftp-srv`是一个易于使用的FTP服务器模块,它允许开发者自定义各种操作,包括处理文件系统的交互。 首先,`index.js`是主入口...

    nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用.

    标题中的“nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用”意味着在Node.js环境中,开发者成功地实现了对Dubbo服务的RPC(远程过程调用)访问,利用了Dubbo协议的特性。Dubbo是阿里巴巴开源的一个高性能、轻量...

    NodeJS调用JShaman接口加密JS代码

    NodeJS调用JShaman接口加密JS代码

    SAP UI5 OData开发

    在深入探讨SAP UI5 OData开发之前,需要明确几个关键点:SAP UI5是一个前端开发框架,而OData(Open Data Protocol)是一种基于Web的协议,允许创建和消费可查询和可更新的数据服务。SAP Gateway是SAP NetWeaver的一...

    nodejs调用dll文档和软件包

    最近在研究nodejs和node-webkit,需要在node-webkit应用...说明:本文档主要说明如何通过nodejs中的ffi和ref模块来调用c的dll文件,并使node-webkit可以调用dll(涉及的软件已全部打包,可以到我上传的资源中去下载)。

    nodejs-web调用摄像头

    在Node.js环境中,开发Web应用并调用摄像头是一项常见的需求,尤其在实时通信、视频会议、在线教育等场景中。`getUserMedia`是WebRTC(Web Real-Time Communication)的一部分,它允许网页应用访问用户的媒体输入...

    NodeJS调用JShaman接口上传Zip文件进行JS加密

    NodeJS调用JShaman接口上传Zip文件进行JS加密

    nodejs-websocket 基于node创建websocket服务器

    nodejs-websocket 基于node创建websocket服务器 websocket 协议和 http 协议类似,http 协议有一个缺陷,只能由客户方端发起请求,服务端根据请求 url 和传过去的参数返回对应结果 websocket 是双向通信的,只要 ...

    基于Node.js的Python脚本调用方法

    Node.js自从问世以来,由于其高并发,语言一致等优点,深受开发者的青睐。特别是在前后端分离逐渐成为业界主流的今天,...提出了一种基于Node.js的Python脚本调用方法,并以一个在线中文分词系统的实例,表明该方法的有效性。

    Nodejs调用Dll模块的方法

    方案二: 使用C++编写一个node addon,通过LoadLibrary调用dll 以上两种方案都可以解决dll调用问题,方案选型要个人对C++ 的掌握程度,如果熟悉C++开发,可以直接选择方案二最方便。如果完全不了解C++,那么只能...

    NWJS(NodeJS)调用小票机demo.zip

    NWJS(NodeJS)调用小票打印机,实现打印小票功能 项目介绍:https://blog.csdn.net/u012383839/article/details/106988705?spm=1001.2014.3001.5502

    node.js 调用天气webservice接口

    使用 Node.js 调用天气WebService 接口需要安装 soap 模块,创建 soap 客户端对象,调用WebService 接口,并对返回的数据进行处理。 soap 模块是 Node.js 中的一个模块,用于调用WebService 接口。该模块提供了 ...

    nodejs调用dll

    最近在研究nodejs和node-webkit,需要在node-webkit应用中调用dll ,折腾了好久,遇到...说明:本文档主要说明如何通过nodejs中的ffi和ref模块来调用c的dll文件,并使node-webkit可以调用dll(涉及的软件已全部打包)

    Javascript.NodeJS:从C#调用NodeJS中的Javascript

    Jering.Javascript.NodeJS目录总览Jering.Javascript.NodeJS使您能够调用JavaScript中 ,从C#。 借助此功能,您可以使用C#项目中的javascript库和脚本。 您可以使用此库来替代最近淘汰的 。 替换了INodeService的...

    nodejs创建web服务器之hello world程序

    它使用C语言重写,能够在服务器端处理大量的并发连接。 总结而言,Node.js通过其V8引擎的高性能解析能力和事件驱动的非阻塞I/O模型,提供了一个高效且轻量级的服务器端运行环境。开发者可以利用Node.js的模块化和...

Global site tag (gtag.js) - Google Analytics