需要创建的销售订单的明细通过硬编码指定:
比如销售订单的描述为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的原创文章,请关注公众号"汪子熙":
相关推荐
**步骤1**:使用事务代码VA01创建销售订单。在创建过程中,选择行项目类别TANN(标准免费项目),与普通销售行项目的行项目类别TAN区分开来。 **步骤2**:在销售订单抬头部分,设置账户分配到成本中心。这一设置有...
创建销售订单是SAP系统中的一个重要功能,能够帮助企业快速创建销售订单。BAPI_SALESORDER_CREATEFROMDAT2是SAP系统中创建销售订单的API接口,通过调用这个接口,可以快速创建销售订单。 在创建销售订单时,需要...
标题:“SAP批量创建采购订单” 描述:转贴:BAPi批量创建:zbapi_po_create 根据提供的文件信息,我们可以深入了解SAP系统中如何利用BAPI(Business Application Programming Interface)进行批量采购订单(PO)的...
在SAP系统中,IDOC(Intermediate Document)是一种用于不同系统间数据交换的标准接口,尤其在集成业务流程时,如采购订单与销售订单之间的转换。本文将深入探讨SAP IDOC在采购订单自动生成销售订单过程中的消息输出...
理解SAP销售订单中各种状态的变化以及它们对业务流程的影响,可以有效地帮助业务人员和IT支持人员在日常工作中更加有效地使用SAP系统,提高订单处理效率,避免由于状态不明确导致的混乱和错误。在实际操作中,应根据...
在使用SAP系统创建销售订单的过程中,有时会遇到一个较为常见的错误:“定价错误:必要条件 MWST 丢失 (Pricing error: Mandatory condition MWST is missing)”。这一错误往往使得订单无法正常完成处理,从而影响...
通过 EDI (电子数据交换) 处理销售...在SAP环境中,通过EDI和IDOC处理销售订单是企业实现数字化供应链、提高运营效率的重要手段。理解和掌握这一技术可以为企业带来显著的效益提升,同时减少人工干预带来的潜在错误。
在 JAVA 语言中,可以使用 SAP 提供的 JCo(Java Connector)来实现与 SAP 系统的集成。JCo 是一个JAVA API,提供了访问 SAP 系统的接口,可以实现数据的传输和交换。 在本文的代码中,我们使用了 JCo 来实现物料主...
SAP按销售订单采购生产系统实现之配置及操作 SAP是当前最流行的企业资源计划系统之一,本文档旨在介绍SAP按销售订单采购生产系统的实现和操作配置。该系统主要针对制造业和流通业的企业,旨在提高生产效率、降低...
在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP 登录信息 在使用 JAVA 调用 SAP SOAP...
SAP Cloud for Customer(简称C4C)是一款专为企业设计的云端解决方案,旨在高效管理销售、客户服务与营销活动。在当前竞争激烈的市场环境下,满足客户需求并优化销售、营销和服务流程对于提高客户满意度至关重要。...
要使用JCo,你需要先在SAP系统中配置RFC目的地,然后在Java代码中设置相应的连接参数。 以下是调用SAP RFC的基本步骤: 1. **配置SAP RFC目的地**:在SAP系统中,通过Transaction Code "SM59" 创建一个TCP/IP类型...
SAP常用事务代码,SAP系统中常用的事务代码(Transaction Codes,简称T-Codes)是执行特定功能或任务的快捷方式。这些事务代码覆盖了SAP的多个模块,包括财务(FI)、物料管理(MM)、销售与分销(SD)、生产计划...
### SAP_SD_销售服务类订单操作说明 #### 一、业务场景 假设您所在的公司提供计算机设备的维护和维修服务。在提供这类服务时,有时需要派遣技术人员到客户的现场进行处理。在这种情况下,并不会使用SAP系统中的...
在SAP系统中,销售合同是一种重要的业务工具,它涵盖了数量合同和价值合同两种类型,分别服务于不同的商业场景。在详细讲解这两种类型的合同之前,我们首先需要了解SAP中的合同配置基础。 一、SAP销售合同配置 1. ...
SAP 第三方采购转成销售是指在销售订单处理中,贵公司并不交付客户所需的货物,而是将订单传递给第三方供应商,由该供应商直接将货物发送客户,并向贵公司出具发票。标准销售订单自动为第三方供应商提交的物料创建...
2. **创建SAP连接**:在Java代码中,首先需要创建一个`SAPConnection`实例,这通常通过`JCoDestinationManager`类的`getDestination`方法完成。你需要提供一个SAP系统的逻辑名称,该名称在SAP系统中定义了连接参数...
在IT行业中,尤其是在企业系统集成领域,JAVA连接SAP是一项常见的任务。SAP作为一个全球领先的业务软件解决方案提供商,其系统广泛应用于企业的财务管理、供应链管理、人力资源等核心业务流程。为了实现JAVA应用程序...
在SAP系统中,VA01是用于创建销售订单的命令,相当于销售流程的起点。使用该命令时,用户需要输入订单日期、选择对应的客户、输入必要的物流信息,并填写其他相关细节,如物料、数量、价格等。创建订单后,若需要...
SAP按销售订单生产和标准结算配置及操作办法