本篇内容介绍了“怎么使用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);
}
}
“怎么使用Java在SAP C4C里创建销售订单”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:http://blog.itpub.net/24475491/viewspace-2565102/