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

使用简单的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的原创文章,请关注公众号"汪子熙":

 
分享到:
评论

相关推荐

    SAP免费销售订单配置及操作手册

    **步骤1**:使用事务代码VA01创建销售订单。在创建过程中,选择行项目类别TANN(标准免费项目),与普通销售行项目的行项目类别TAN区分开来。 **步骤2**:在销售订单抬头部分,设置账户分配到成本中心。这一设置有...

    创建销售订单

    创建销售订单是SAP系统中的一个重要功能,能够帮助企业快速创建销售订单。BAPI_SALESORDER_CREATEFROMDAT2是SAP系统中创建销售订单的API接口,通过调用这个接口,可以快速创建销售订单。 在创建销售订单时,需要...

    sap批量创建采购订单

    标题:“SAP批量创建采购订单” 描述:转贴:BAPi批量创建:zbapi_po_create 根据提供的文件信息,我们可以深入了解SAP系统中如何利用BAPI(Business Application Programming Interface)进行批量采购订单(PO)的...

    SAP IDOC - 消息输出 - 采购订单<->销售订单

    在SAP系统中,IDOC(Intermediate Document)是一种用于不同系统间数据交换的标准接口,尤其在集成业务流程时,如采购订单与销售订单之间的转换。本文将深入探讨SAP IDOC在采购订单自动生成销售订单过程中的消息输出...

    SAP销售订单中各种状态的说明

    理解SAP销售订单中各种状态的变化以及它们对业务流程的影响,可以有效地帮助业务人员和IT支持人员在日常工作中更加有效地使用SAP系统,提高订单处理效率,避免由于状态不明确导致的混乱和错误。在实际操作中,应根据...

    SAP创建销售订单时,出现“定价条件错误:必要条件 MWST 丢失”错误,查错及其解决方法

    在使用SAP系统创建销售订单的过程中,有时会遇到一个较为常见的错误:“定价错误:必要条件 MWST 丢失 (Pricing error: Mandatory condition MWST is missing)”。这一错误往往使得订单无法正常完成处理,从而影响...

    通过 EDI IDOC 处理销售订单

    通过 EDI (电子数据交换) 处理销售...在SAP环境中,通过EDI和IDOC处理销售订单是企业实现数字化供应链、提高运营效率的重要手段。理解和掌握这一技术可以为企业带来显著的效益提升,同时减少人工干预带来的潜在错误。

    JAVA传输到SAP,物料主数据代码,自己做项目写的

    在 JAVA 语言中,可以使用 SAP 提供的 JCo(Java Connector)来实现与 SAP 系统的集成。JCo 是一个JAVA API,提供了访问 SAP 系统的接口,可以实现数据的传输和交换。 在本文的代码中,我们使用了 JCo 来实现物料主...

    SAP-按销售订单采购生产系统实现之配置及操作.doc

    SAP按销售订单采购生产系统实现之配置及操作 SAP是当前最流行的企业资源计划系统之一,本文档旨在介绍SAP按销售订单采购生产系统的实现和操作配置。该系统主要针对制造业和流通业的企业,旨在提高生产效率、降低...

    JAVA 调用SAP SOAP webservice.docx

    在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP 登录信息 在使用 JAVA 调用 SAP SOAP...

    SAP-C4C---快速指南.docx

    SAP Cloud for Customer(简称C4C)是一款专为企业设计的云端解决方案,旨在高效管理销售、客户服务与营销活动。在当前竞争激烈的市场环境下,满足客户需求并优化销售、营销和服务流程对于提高客户满意度至关重要。...

    Java 调用 SAP RFC 案例

    要使用JCo,你需要先在SAP系统中配置RFC目的地,然后在Java代码中设置相应的连接参数。 以下是调用SAP RFC的基本步骤: 1. **配置SAP RFC目的地**:在SAP系统中,通过Transaction Code "SM59" 创建一个TCP/IP类型...

    SAP常用事务代码,涉及到MM板块

    SAP常用事务代码,SAP系统中常用的事务代码(Transaction Codes,简称T-Codes)是执行特定功能或任务的快捷方式。这些事务代码覆盖了SAP的多个模块,包括财务(FI)、物料管理(MM)、销售与分销(SD)、生产计划...

    SAP_SD_销售服务类订单操作说明

    ### SAP_SD_销售服务类订单操作说明 #### 一、业务场景 假设您所在的公司提供计算机设备的维护和维修服务。在提供这类服务时,有时需要派遣技术人员到客户的现场进行处理。在这种情况下,并不会使用SAP系统中的...

    详细的SAP销售合同配置和操作

    在SAP系统中,销售合同是一种重要的业务工具,它涵盖了数量合同和价值合同两种类型,分别服务于不同的商业场景。在详细讲解这两种类型的合同之前,我们首先需要了解SAP中的合同配置基础。 一、SAP销售合同配置 1. ...

    SAP 第三方采购转成销售

    SAP 第三方采购转成销售是指在销售订单处理中,贵公司并不交付客户所需的货物,而是将订单传递给第三方供应商,由该供应商直接将货物发送客户,并向贵公司出具发票。标准销售订单自动为第三方供应商提交的物料创建...

    JAVA对接SAP接口使用sapjco3.dll跟jar文件

    2. **创建SAP连接**:在Java代码中,首先需要创建一个`SAPConnection`实例,这通常通过`JCoDestinationManager`类的`getDestination`方法完成。你需要提供一个SAP系统的逻辑名称,该名称在SAP系统中定义了连接参数...

    JAVA连接SAP的官方接口文档

    在IT行业中,尤其是在企业系统集成领域,JAVA连接SAP是一项常见的任务。SAP作为一个全球领先的业务软件解决方案提供商,其系统广泛应用于企业的财务管理、供应链管理、人力资源等核心业务流程。为了实现JAVA应用程序...

    SAP销售订单操作指南.pdf

    在SAP系统中,VA01是用于创建销售订单的命令,相当于销售流程的起点。使用该命令时,用户需要输入订单日期、选择对应的客户、输入必要的物流信息,并填写其他相关细节,如物料、数量、价格等。创建订单后,若需要...

    SAP按销售订单生产和标准结算配置及操作办法

    SAP按销售订单生产和标准结算配置及操作办法

Global site tag (gtag.js) - Google Analytics