CheckSnFromSAP.java
3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.huaheng.common.sapJco;
import com.huaheng.pc.monitor.apilog.domain.ApiLog;
import com.huaheng.pc.monitor.apilog.service.IApiLogService;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoTable;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
@Component
public class CheckSnFromSAP {
@Resource
private IApiLogService apiLogService;
public SAPEntity sendToSap(String task_No, BigDecimal qty) {
JCoFunction function = null;
JCoDestination destination = SAPConn.connect();
String result = "";//调用接口返回状态
String message = "";//调用接口返回信息
SAPEntity sapEntity = new SAPEntity();
try {
//调用ZWMSHH_MACHINE_GR函数
function = destination.getRepository().getFunction("ZWMSHH_MACHINE_GR");
//获取传入表参数SN_ITEM
JCoTable SN_ITEM = function.getTableParameterList().getTable("CT_RECEIPT");
SN_ITEM.appendRow();//增加一行
//给表参数中的字段赋值,此处测试,就随便传两个值进去
SN_ITEM.setValue("TASK_NO", task_No);
SN_ITEM.setValue("QTY", Integer.valueOf(qty.toString()));
function.execute(destination);
JCoTable ct_receipt = function.getTableParameterList().getTable("CT_RECEIPT");
Integer QTY = ct_receipt.getInt("QTY");
String TYPE = ct_receipt.getString("TYPE");
Integer ORDERS = ct_receipt.getInt("ORDERS");
String TASK_NO = ct_receipt.getString("TASK_NO");
String MESSAGE = ct_receipt.getString("MESSAGE");
String BILL_NO = ct_receipt.getString("BILL_NO");
String ITEM_CODE = ct_receipt.getString("ITEM_CODE");
Integer OPERATION_TYPE = ct_receipt.getInt("OPERATION_TYPE");
ApiLog apiLog = new ApiLog();
apiLog.setApiName("出库单回传");
apiLog.setApiMethod("RFC");
apiLog.setRequestFrom("WMS");
apiLog.setResponseBy("ASP");
apiLog.setUrl("CT_RECEIPT");
apiLog.setRequestTime(new Date());
apiLog.setResponseTime(new Date());
apiLog.setRequestBody("{" + "TASK_NO:" + task_No + ",QTY:" + qty + "}");
result = "{TASK_NO:" + TASK_NO + ",TYPE:" + TYPE + ",MESSAGE:" + MESSAGE + ",BILL_NO:" + BILL_NO + ",ORDERS:" + ORDERS + ",OPERATION_TYPE:" + OPERATION_TYPE + ",QTY:" + QTY + ",ITEM_CODE:" + ITEM_CODE + "}";
apiLog.setResponseBody(result);
apiLogService.save(apiLog);
sapEntity.setBILL_NO(BILL_NO);
sapEntity.setTASK_NO(TASK_NO);
sapEntity.setITEM_CODE(ITEM_CODE);
sapEntity.setMESSAGE(MESSAGE);
sapEntity.setOPERATION_TYPE(OPERATION_TYPE);
sapEntity.setTYPE(TYPE);
sapEntity.setQTY(QTY);
sapEntity.setORDERS(ORDERS);
/*result= function.getExportParameterList().getString("RESULT");//调用接口返回状态
message= function.getExportParameterList().getString("MESSAGE");//调用接口返回信息
result="{TASK_NO:"+TASK_NO+",TYPE:"+TYPE+",MESSAGE:"+MESSAGE+",BILL_NO:"+BILL_NO+",ORDERS:"+ORDERS+",OPERATION_TYPE:"+OPERATION_TYPE+",QTY:"+QTY+",ITEM_CODE:"+ITEM_CODE+"}";
System.out.println("调用返回信息--->"+result);
清空本次条件,如果要继续传入值去或者还要循环,那得将之前的条件清空*/
SN_ITEM.clear();
} catch (Exception e) {
e.printStackTrace();
}
return sapEntity;
}
}