zoukankan      html  css  js  c++  java
  • 使用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);
      });
    });
    
  • 相关阅读:
    centos6.8添加crontab定时启动任务
    centos7用户最大进程限制导致的问题排查
    centos ftp 服务器搭建
    centos6.8的坑
    华为云centos服务器挂载云硬盘
    华为云windows开启特定端口
    华为云centos上命令
    排查机器服务无法使用步骤
    高(0.10.X以上版本)低(0.10.X以下版本)版本kafka如何共存
    PHP array_column重新构建二维数组
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/12189000.html
Copyright © 2011-2022 走看看