使用简单的Java代码在SAP C4C里创建销售订单
需要创建的销售订单的明细通过硬编码指定:
比如销售订单的描述为Jerry Test 2019-1-23 16:05PM
执行之后,看到Status Code 201,说明创建成功:

到UI上能看到成功创建的销售订单:
实现代码:
package odata;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
public class SimpleOrderCreator {
private final String SERVICEURL = "https://my5000jerry.c4c.saphybriscloud.cn/sap/c4c/odata/cust/v1/zjerrysalesorder/CustomerQuoteCollection";
HttpClient m_httpClient;
private HttpClient getHttpClient() {
if (this.m_httpClient == null) {
this.m_httpClient = HttpClientBuilder.create().build();
}
return this.m_httpClient;
}
private String getCSRFToken(){
final HttpGet get = new HttpGet(SERVICEURL);
get.setHeader("Authorization", "Basic 0FOR0pFUlJZMTpTYXB0ZXN0MQ==");
get.setHeader("x-csrf-token", "fetch");
HttpHost proxy = new HttpHost("proxy.sha.sap.corp", 8080, "http");
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
get.setConfig(config);
HttpResponse response;
String token = null;
try {
response = getHttpClient().execute(get);
/*Header[] header = response.getAllHeaders();
for( int i =0; i < header.length; i++){
System.out.println("Header: " + header[i].getValue());
}*/
token = response.getFirstHeader("x-csrf-token").getValue();
System.out.println("token: " + token);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException | UnsupportedOperationException e) {
e.printStackTrace();
}
return token;
}
private void createSO(String token,String body) {
final HttpPost post = new HttpPost(
URI.create(SERVICEURL));
post.setHeader("Authorization",
"Basic 0FOR0pFUlJZMTpTYXB0ZXN0MQ==");
post.setHeader("Content-Type", "application/json");
post.setHeader("X-CSRF-Token", token);
HttpEntity entity = null;
try {
entity = new StringEntity(body);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
post.setEntity(entity);
HttpResponse response = null;
try {
response = getHttpClient().execute(post);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Response statusCode for Batch => "
+ response.getStatusLine().getStatusCode());
}
public static void main(String[] args) {
SimpleOrderCreator tool = new SimpleOrderCreator();
String token = tool.getCSRFToken();
String body = "{" +
"\"Name\": \"Jerry Test 2019-1-23 16:05PM\"," +
"\"TypeCode\": \"2059\"," +
"\"BuyerID\":\"ee\"," +
"\"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\"" +
"}]" +
"}";
tool.createSO(token, body);
}
}
要获取更多Jerry的原创文章,请关注公众号"汪子熙":

使用简单的Java代码在SAP C4C里创建销售订单的更多相关文章
- 使用nodejs代码在SAP C4C里创建Individual customer
需求:使用nodejs代码在SAP Cloud for Customer里创建Individual customer实例. 代码: var createAndBind = require('../je ...
- 在SAP C4C里触发SAP ERP的ATP check和Credit check
在C4C里创建一个新的Sales Quote: 添加三个行项目: 执行action "Request External Pricing"会从ERP更新pricing信息,触发ATP ...
- SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里
SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里 如下的销售订单,有多个ITEM, 为其中的第一个ITEM创建了DN 80016362, 如果业务发现需要修改该交货单,将销售订单里的 ...
- 【SD系列】SAP 创建销售订单-用外部给号的方法步骤
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SD系列]SAP 创建销售订单-用外部给号的方 ...
- 如何用Java代码在SAP Marketing Cloud里创建contact数据
我们可以使用SAP Marketing Cloud提供的Contact create OData API在第三方应用里创建Contact主数据. API地址:/sap/opu/odata/sap/CU ...
- 如何在SAP C4C里使用ABSL消费第三方Restful API
首先我们得有一个可以正常工作的Restful API: 然后在Cloud for Customer的Cloud Application Studio里创建Restful API的模型,把第一步可以正常 ...
- SAP Cloud for Customer销售订单External Note的建模细节
SAP Cloud for Customer的销售订单创建页面里,我们可以给一个订单维护External Note,当这个订单同步到S/4HANA生成对应的生产订单后,这个note可以作为备注提示生产 ...
- 如何用SAP Cloud for Customer的手机App创建销售订单
第一次启动App,设置一个初始化的pin code: 输入C4C tenant的url,用户名和密码: 登录进系统后,找到Sales Order工作中心: 可以看到系统里很多已有的销售订单了.点击屏幕 ...
- SAP C4C里如何实现Sales Unit和Seller的自动determination
先看一个效果,我录了一个视频,发布在视频网站上,大家可以先看看SAP Cloud for Customer里启用了partner 自动determination后的效果. 在SAP Cloud for ...
随机推荐
- css消除空白节点的方法
在做配置页面的时候,出现一个现在现象,两个同样的div(外框尺寸也是一样的),div里面包含有三个小的div ,三个小的div宽度也是一样的,同为33.3%,但是出现奇怪现象的就是左边一个有滚动条,右 ...
- python输出不换行
python输出不换行 Python2的写法是: print 'hello', Python3的写法是: print('hello', end='') 对于python2和python3都兼容的写法是 ...
- [转]ASP.NET Web API基于OData的增删改查,以及处理实体间关系
本文转自:http://www.cnblogs.com/darrenji/p/4926334.html 本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先 ...
- wxss无法调用本地资源图片
微信小程序中,wxss中不能调用本地资源图片作为背景图片,奇怪的是在微信开发者工具中可以调用,但是到了真机预览的时候发现并不行,有的电脑上的连微信开发者工具里也不可以调用. 原因在于小程序上传的是代码 ...
- C#导入Excel|读取Excel方法
OleDbConnection读取 /// <summary> /// 返回Excel数据源 /// </summary> /// < ...
- .netcore2.0 有关配置
1.在部署WebApi 或者网站时常用的2个配置数据库连接字符串.绑定Url地址 2.# 数据库连接字符串配置: 默认的配置文件 appsettings.json 添加配置节点: "Conn ...
- 通过winmm.dll控制声音播放
介绍如何通过winmm.dll播放声音 首先导入两个函数 /// <summary> /// 向媒体控制接口发送控制命令 /// </summary> /// <para ...
- spring_boot 配置
配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...
- Java实现内存分配算法 FF(首次适应算法) BF(最佳适应算法)
一.概述 因为这次os作业对用户在控制台的输入输出有要求,所以我花了挺多的代码来完善控制台的显示. MemoryAlgorithm类里只是和控制台输入输出有关的操作,而对内存的所有逻辑操作都是用Mem ...
- 移动端适配(2)——viewport适配
通过viewport来适配 <script> (function(){ var w=window.screen.width; console.log(w);//获取屏幕尺寸 var tar ...