20240712代码上传

master
李冬阳 11 months ago
parent 49d929c1c2
commit 7da9d21051

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -48,17 +48,6 @@ void logBomMsg(vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> lists);
void logProcessMsg(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; void logProcessMsg(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist;
char* getUnti(char* unti); char* getUnti(char* unti);
struct FlowBean {
vector<tag_t> flowList;
tag_t flow_split = NULLTAG;
tag_t flow_combine = NULLTAG;
tag_t flow_end = NULLTAG;
char* BEZFL; // 参考顺序
string PLNFL = ""; // 序列
boolean isMain = true;
boolean isOther = false;
vector<tag_t> flow_combine_list;
};
FlowBean getClone(FlowBean oldBean) { FlowBean getClone(FlowBean oldBean) {
FlowBean newBean; FlowBean newBean;
newBean.isMain = false; newBean.isMain = false;
@ -132,12 +121,14 @@ void SplitStr(string strArg, string spliter, vector<string>& ans)
} }
} }
} }
void sendBom(vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list, string batchMsg) { void sendBom(vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list, string batchMsg, char* url) {
//SIO_USCOREBOM_USCOREPLM_USCOREASYNBinding //SIO_USCOREBOM_USCOREPLM_USCOREASYNBinding
SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy proxy; SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy proxy;
ns1__DT_USCOREBOM_USCORES4_USCOREREQ ns1Req; ns1__DT_USCOREBOM_USCORES4_USCOREREQ ns1Req;
proxy.userid = "shpodev"; //proxy.userid = "shpodev";
proxy.passwd = "sap@2019Test"; //proxy.passwd = "sap@2019Test";
proxy.userid = "po_rfc";
proxy.passwd = "1qaz!QAZ";
soap_mode(&proxy, SOAP_C_UTFSTRING); soap_mode(&proxy, SOAP_C_UTFSTRING);
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST* reqList = _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST* reqList =
new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST[list.size()]; new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST[list.size()];
@ -152,20 +143,20 @@ void sendBom(vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list, string bat
baseInfo.REQ_USCORETRACE_USCOREID = (char*)batchMsg.c_str();//batchNum; baseInfo.REQ_USCORETRACE_USCOREID = (char*)batchMsg.c_str();//batchNum;
ns1Req.BASEINFO = &baseInfo; ns1Req.BASEINFO = &baseInfo;
//ns1__DT_USCOREBOM_USCOREPLM_USCORERSP ns1Rsp; //ns1__DT_USCOREBOM_USCOREPLM_USCORERSP ns1Rsp;
int xlt = proxy.send_SIO_USCOREBOM_USCOREPLM_USCOREASYN(NULL, NULL, &ns1Req); int xlt = proxy.send_SIO_USCOREBOM_USCOREPLM_USCOREASYN(url, NULL, &ns1Req);
log("111"); //log("111");
char* msg = proxy.buf; char* msg = proxy.buf;
vector<string> vecMsg; vector<string> vecMsg;
//Split(msg, "?>", vecMsg); //Split(msg, "?>", vecMsg);
//webservice调不通 暂时拆分获取xml信息curl调用 //webservice调不通 暂时拆分获取xml信息curl调用
/*string lastMsg = vecMsg[vecMsg.size()-1].c_str(); /*string lastMsg = vecMsg[vecMsg.size()-1].c_str();
lastMsg = lastMsg.substr(1, lastMsg.size());*/ lastMsg = lastMsg.substr(1, lastMsg.size());*/
log("BOM XML MSG:{}", msg);/* xml信息*/ //log("BOM XML MSG:{}", msg);/* xml信息*/
SplitStr(msg, "soap1.1\"", vecMsg); SplitStr(msg, "soap1.1\"", vecMsg);
string lastMsg = vecMsg[1].substr(11); string lastMsg = vecMsg[1].substr(11);
string str = callHttpserver2(lastMsg);
string logmsg = "BOM XML MSG:"; string logmsg = "BOM XML MSG:";
log2(logmsg.append(lastMsg));/* xml信息*/ log2(logmsg.append(lastMsg));/* xml信息*/
string str = callHttpserver2(lastMsg, url);
logmsg = "return MSG :"; logmsg = "return MSG :";
log2(logmsg.append(str)); log2(logmsg.append(str));
soap_print_fault(&proxy, stderr); soap_print_fault(&proxy, stderr);
@ -206,11 +197,11 @@ void isMain(FlowBean& bean, vector<tag_t>& mainLines, vector<tag_t>& endLines,
log("num %d\n", num); log("num %d\n", num);
vector<tag_t>::const_iterator index1 = lists.begin(); vector<tag_t>::const_iterator index1 = lists.begin();
vector<tag_t>::const_iterator index2 = lists.begin() + num; vector<tag_t>::const_iterator index2 = lists.begin() + num;
log("num %d\n", num); //log("num %d\n", num);
vector<tag_t> vec_new; // 新的vector存放 vector<tag_t> vec_new; // 新的vector存放
log("num %d\n", num); //log("num %d\n", num);
vec_new.assign(index1, index2); vec_new.assign(index1, index2);
log("num %d\n", num); //log("num %d\n", num);
bean.flowList = vec_new; bean.flowList = vec_new;
if (BEZFL_maps.count(combine) > 0) { if (BEZFL_maps.count(combine) > 0) {
@ -218,7 +209,7 @@ void isMain(FlowBean& bean, vector<tag_t>& mainLines, vector<tag_t>& endLines,
} }
return; return;
} }
log("1\n"); //log("1\n");
if (mainLines.size() == 0) { if (mainLines.size() == 0) {
bean.isMain = (true); bean.isMain = (true);
} }
@ -255,12 +246,12 @@ void isMain(FlowBean& bean, vector<tag_t>& mainLines, vector<tag_t>& endLines,
for (int i = 0; i <= len; i++) { for (int i = 0; i <= len; i++) {
if (std::find(mainLines.begin(), mainLines.end(), lists[i]) == mainLines.end()) { if (std::find(mainLines.begin(), mainLines.end(), lists[i]) == mainLines.end()) {
log("3\n"); //log("3\n");
mainLines.push_back(lists[i]); mainLines.push_back(lists[i]);
char* fileDate = new char[20]; char* fileDate = new char[20];
sprintf(fileDate, "%06d", num2); sprintf(fileDate, "%06d", num2);
BEZFL_maps[lists[i]] = fileDate; BEZFL_maps[lists[i]] = fileDate;
log("4\n"); //log("4\n");
} }
} }
@ -268,7 +259,7 @@ void isMain(FlowBean& bean, vector<tag_t>& mainLines, vector<tag_t>& endLines,
return; return;
} }
void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist, string& sendMsg) { void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist, string& sendMsg, char* url) {
//ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ *ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ //ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ *ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ
SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy proxy; SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy proxy;
soap_mode(&proxy, SOAP_C_UTFSTRING); soap_mode(&proxy, SOAP_C_UTFSTRING);
@ -289,7 +280,7 @@ void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> pr
proxy.userid = "shplm";//shplm proxy.userid = "shplm";//shplm
proxy.passwd = "sap@2019"; proxy.passwd = "sap@2019";
int xlt = proxy.SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYN(NULL, NULL, &ns1Req, ns1Rsp); int xlt = proxy.SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYN(url, NULL, &ns1Req, ns1Rsp);
if (xlt != 0) { if (xlt != 0) {
soap_print_fault(&proxy, stderr); soap_print_fault(&proxy, stderr);
} }
@ -298,7 +289,7 @@ void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> pr
printfMsg(ns1Rsp, sendMsg); printfMsg(ns1Rsp, sendMsg);
} }
void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys) { void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys, char* url) {
SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy proxy; SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy proxy;
//soap_set_omode(&proxy, SOAP_C_UTFSTRING); //soap_set_omode(&proxy, SOAP_C_UTFSTRING);
@ -321,7 +312,7 @@ void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_IT
items.ITEM = item_items; items.ITEM = item_items;
ns1Req.ITEMS = &items; ns1Req.ITEMS = &items;
ns1__DT_USCOREFACTORY_USCORENUMBER_USCORERSP ns1Rsp; ns1__DT_USCOREFACTORY_USCORENUMBER_USCORERSP ns1Rsp;
int xlt = proxy.SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYN(NULL, NULL, &ns1Req, ns1Rsp); int xlt = proxy.SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYN(url, NULL, &ns1Req, ns1Rsp);
log("xlt:[%d]", xlt); log("xlt:[%d]", xlt);
if (xlt != 0) { if (xlt != 0) {
soap_print_fault(&proxy, stderr); soap_print_fault(&proxy, stderr);
@ -388,7 +379,7 @@ tag_t getProcessTag(tag_t mantr, char* groupName) {
//通过引用关系查找到变更单 //通过引用关系查找到变更单
ITKCALL(WSOM_where_referenced(mantr, 1, &n_references, &levels, &references_tag, &relation_type_name)); ITKCALL(WSOM_where_referenced(mantr, 1, &n_references, &levels, &references_tag, &relation_type_name));
for (int n = 0; n < n_references; n++) { for (int n = 0; n < n_references; n++) {
log("relation_type_name===>%s\n", relation_type_name[n]); //log("relation_type_name===>%s\n", relation_type_name[n]);
if (strcmp(relation_type_name[n], "IMAN_METarget") == 0) {//IMAN_METarget if (strcmp(relation_type_name[n], "IMAN_METarget") == 0) {//IMAN_METarget
// //
char *os = NULL; char *os = NULL;
@ -753,7 +744,7 @@ void recurZYZZSAPYH(tag_t line, tag_t rev, vector<string>& bomISExist,
vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist) { vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist) {
char* zt2_Diagram, *item_id, *object_name, *zt2_MaterialNo, *zt2_WBSNo; char* zt2_Diagram, *item_id, *object_name, *zt2_MaterialNo, *zt2_WBSNo;
//"zt2_Diagram","item_id","object_name","zt2_MaterialNo","zt2_WBSNo" //"zt2_Diagram","item_id","object_name","zt2_MaterialNo","zt2_WBSNo"
ITKCALL(AOM_ask_value_string(rev, "zt2_Diagram", &zt2_Diagram)); //ITKCALL(AOM_ask_value_string(rev, "zt2_Diagram", &zt2_Diagram));
ITKCALL(AOM_ask_value_string(rev, "item_id", &item_id)); ITKCALL(AOM_ask_value_string(rev, "item_id", &item_id));
ITKCALL(AOM_ask_value_string(rev, "object_name", &object_name)); ITKCALL(AOM_ask_value_string(rev, "object_name", &object_name));
ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialNo", &zt2_MaterialNo)); ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialNo", &zt2_MaterialNo));
@ -814,10 +805,10 @@ void recurZYZZSAPYH(tag_t line, tag_t rev, vector<string>& bomISExist,
tag_t c_line_tag = c_line_tags[i], rev2; tag_t c_line_tag = c_line_tags[i], rev2;
ITKCALL(AOM_ask_value_tag(c_line_tag, "bl_line_object", &rev2)); ITKCALL(AOM_ask_value_tag(c_line_tag, "bl_line_object", &rev2));
char* prop0, *prop1, *prop2, *prop3, *prop4, *zt2_unit2; char* prop0, *prop1, *prop2, *prop3, *prop4, *zt2_unit2;
ITKCALL(AOM_ask_value_string(rev2, "zt2_Diagram", &prop0)); //ITKCALL(AOM_ask_value_string(rev2, "zt2_Diagram", &prop0));
ITKCALL(AOM_ask_value_string(rev2, "item_id", &prop1)); ITKCALL(AOM_ask_value_string(rev2, "item_id", &prop1));
ITKCALL(AOM_ask_value_string(rev2, "object_name", &prop2)); ITKCALL(AOM_ask_value_string(rev2, "object_name", &prop2));
ITKCALL(AOM_ask_value_string(rev2, "zt2_SapState", &prop3)); //ITKCALL(AOM_ask_value_string(rev2, "zt2_SapState", &prop3));
ITKCALL(AOM_ask_value_string(rev2, "zt2_MaterialNo", &prop4)); ITKCALL(AOM_ask_value_string(rev2, "zt2_MaterialNo", &prop4));
tag_t part2; tag_t part2;
ITKCALL(ITEM_ask_item_of_rev(rev2, &part2)); ITKCALL(ITEM_ask_item_of_rev(rev2, &part2));
@ -1203,7 +1194,8 @@ void logCcbh(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> li
msg.append("ZPSPID = ").append(getNotNullMsg(list_Factory.ZPSPID)).append(" "); msg.append("ZPSPID = ").append(getNotNullMsg(list_Factory.ZPSPID)).append(" ");
msg.append("ZZD = ").append(getNotNullMsg(list_Factory.ZZD)).append("\n"); msg.append("ZZD = ").append(getNotNullMsg(list_Factory.ZZD)).append("\n");
} }
log(" 出厂编号信息:%s\n", msg.c_str()); log(" 出厂编号信息:");
log2(msg);
} }
/** /**
* 线 * 线
@ -1403,7 +1395,7 @@ string getPlmTime(char *code) {
*/ */
void startSplitSend(char*groupId, void startSplitSend(char*groupId,
map<tag_t, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>> mapList, map<tag_t, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>> mapList,
char *code, char *wbsNo, map<string, vector<string>> inCcpMap) { char *code, char *wbsNo, map<string, vector<string>> inCcpMap, char* url) {
int url_num = 0; int url_num = 0;
char** url_vals = NULL; char** url_vals = NULL;
//首选项配置组对应的拆分方法 //首选项配置组对应的拆分方法
@ -1476,7 +1468,7 @@ void startSplitSend(char*groupId,
logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus); logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus);
} }
log(" start SEND ===\n"); log(" start SEND ===\n");
sendBom(list, batchMsg); sendBom(list, batchMsg, url);
batchNum = batchNum + 1; batchNum = batchNum + 1;
list.clear(); list.clear();
} }
@ -1495,7 +1487,7 @@ void startSplitSend(char*groupId,
//log("i.size() ===> %d \n", i); //log("i.size() ===> %d \n", i);
} }
log(" start SEND ==="); log(" start SEND ===");
sendBom(list, batchMsg); sendBom(list, batchMsg, url);
batchNum = batchNum + 1; batchNum = batchNum + 1;
list.clear(); list.clear();
} }
@ -1522,7 +1514,7 @@ void startSplitSend(char*groupId,
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST bomMsg = list[i]; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST bomMsg = list[i];
logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus); logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus);
} }
sendBom(list, batchMsg); sendBom(list, batchMsg, url);
batchNum = batchNum + 1; batchNum = batchNum + 1;
list.clear(); list.clear();
} }
@ -1537,7 +1529,7 @@ void startSplitSend(char*groupId,
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST bomMsg = list[i]; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST bomMsg = list[i];
logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus); logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus);
} }
sendBom(list, batchMsg); sendBom(list, batchMsg, url);
batchNum = batchNum + 1; batchNum = batchNum + 1;
list.clear(); list.clear();
} }
@ -1553,9 +1545,12 @@ void startSplitSend(char*groupId,
ExecuteSQLNoInputParam(selectRxfs); ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit"); ExecuteSQLNoInputParam((char*)"commit");
} }
#define SEND_MSG "发起的 \\\"" //#define SEND_MSG "发起的 \\\""
#define SPLIT_MSG "\\\" \\\"" //#define SPLIT_MSG "\\\" \\\""
#define CODE_MSG "\\\" 项目已经处理完毕, 任务号: " //#define CODE_MSG "\\\" 项目已经处理完毕, 任务号: "
#define SEND_MSG "发起的 \\\\\"\""
#define SPLIT_MSG "\\\\\"\" \\\\\"\""
#define CODE_MSG "\\\\\"\" 项目已经处理完毕, 任务号: "
#define TYPE_MSG ", 传递类型: " #define TYPE_MSG ", 传递类型: "
#define RESULT_MSG ", 本次传递结果为: PLM检查未通过。具体原因:\\n" #define RESULT_MSG ", 本次传递结果为: PLM检查未通过。具体原因:\\n"
@ -1567,7 +1562,7 @@ void startSplitSend(char*groupId,
* @param userName * @param userName
* @param projectName * @param projectName
*/ */
void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* projectName) { void sendNotice(char *code, string errMsg, char *wbsNo, char *groupName, char *userName, char* projectName) {
/*string noticeMsg = "项目BOM传递异常WBS:"; /*string noticeMsg = "项目BOM传递异常WBS:";
noticeMsg.append(wbsNo).append("\n").append(errMsg);*/ noticeMsg.append(wbsNo).append("\n").append(errMsg);*/
@ -1587,8 +1582,8 @@ void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* pr
startTime = outputValue1[num][1]; startTime = outputValue1[num][1];
transfer = outputValue1[num][2]; transfer = outputValue1[num][2];
} }
string noticeMsg = "【PLM系统自动通知】"; string noticeMsg = "【PLM系统自动通知】";
noticeMsg.append(startTime).append(" ") noticeMsg.append(groupName).append("】:").append(startTime).append(" ")
.append(userName).append(SEND_MSG) .append(userName).append(SEND_MSG)
.append(wbsNo).append(SPLIT_MSG) .append(wbsNo).append(SPLIT_MSG)
.append(projectName).append(CODE_MSG) .append(projectName).append(CODE_MSG)
@ -1596,16 +1591,33 @@ void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* pr
.append(errMsg); .append(errMsg);
string json = "{"; string json = "{";
json.append("\"mobiles\":").append("[\"13588843438\",\"15295371103\"],"); json.append("\"\"mobiles\"\":").append("[\"\"13588843438\"\",\"\"15295371103\"\"],");
json.append("\"emails\":").append("["); json.append("\"\"emails\"\":").append("[");
json.append("\"").append(userNameStr).append("\"],"); json.append("\"\"").append(userNameStr).append("\"\"],");
json.append("\"sms\":").append("false,"); json.append("\"\"sms\"\":").append("false,");
json.append("\"content\":\"").append(noticeMsg).append("\""); json.append("\"\"content\"\":\"\"").append(noticeMsg).append("\"\"");
json.append("}"); json.append("}");
log(" 项目数据组织错误信息 :%s \n", json.c_str()); log(" 项目数据组织错误信息 :%s \n", json.c_str());
string returnMsg = callFsHttpserver(json, "http://10.128.10.170/api/feishu/Message/sendMessages"); //string returnMsg = callFsHttpserver(json, "http://10.128.10.170/api/feishu/Message/sendMessages");
log(" 飞书通知结果 :%s \n", returnMsg.c_str()); string cmd = "java -jar \"";
cmd.append(getenv("TC_ROOT")).append("\\bin\\uploadMinio.jar\" FS \"").append(json).append("\"");
log("cmd==>%s", cmd.c_str());
FILE* pf = NULL;
string strResult;
char buf[8000] = { 0 };
if ((pf = _popen(cmd.c_str(), "r")) == NULL) {
log("接口返回1\n");
}
else {
log("接口返回2\n");
while (fgets(buf, sizeof buf, pf)) {
strResult += buf;
}
_pclose(pf);
}
log(" 飞书通知结果 :%s \n", strResult.c_str());
} }
/** /**
@ -1624,6 +1636,24 @@ void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* pr
void getCcpAndBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs, void getCcpAndBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName) { char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName) {
log("************** getCcpAndBom **************"); log("************** getCcpAndBom **************");
int pref_cnt = 0;
char **urls = NULL;
ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls));
if (pref_cnt < 3) {
errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n");
//
string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' ";
char selectRxfs[800];
string timel;
sprintf(selectRxfs, updateSum.c_str(), code);
log("selectRecord2 ===> %s\n", selectRxfs);
ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit");
//错误数据已发送飞书提醒
sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName);
return;
}
//记录是否有重复的出厂编号 //记录是否有重复的出厂编号
vector<tag_t> isCheck_FactoryNos; vector<tag_t> isCheck_FactoryNos;
//记录产成品 对应的 电气BOM集合 //记录产成品 对应的 电气BOM集合
@ -1709,7 +1739,8 @@ void getCcpAndBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, cha
//传递出厂编号的记录日志信息 //传递出厂编号的记录日志信息
log("出厂编号数量 num :%zd\n", list_Factorys.size()); log("出厂编号数量 num :%zd\n", list_Factorys.size());
logCcbh(list_Factorys); logCcbh(list_Factorys);
sendFactoryNo(list_Factorys);
sendFactoryNo(list_Factorys, urls[0]);
string errMess;//记录BOM错误信息 string errMess;//记录BOM错误信息
map<string, tag_t> material_revs; //记录需要修改属性的产成品 map<string, tag_t> material_revs; //记录需要修改属性的产成品
@ -1743,7 +1774,7 @@ void getCcpAndBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, cha
ExecuteSQLNoInputParam((char*)"commit"); ExecuteSQLNoInputParam((char*)"commit");
//错误数据已发送飞书提醒 //错误数据已发送飞书提醒
sendNotice(code, errMsgBuf, wbs, userName, projectName); sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName);
return; return;
} }
@ -1778,7 +1809,7 @@ void getCcpAndBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, cha
} }
if (proclist.size() > 0) { if (proclist.size() > 0) {
logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist;
sendProcess(proclist, sendMsg);//proclists.push_back(proclist);//sendProcess(proclist); sendProcess(proclist, sendMsg, urls[1]);//proclists.push_back(proclist);//sendProcess(proclist);
} }
} }
} }
@ -1798,7 +1829,7 @@ void getCcpAndBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, cha
//传递BOM //传递BOM
//logBomMsg(list); //logBomMsg(list);
//sendBom(list, sendMsg); //sendBom(list, sendMsg);
startSplitSend(groupName, mapList, code, wbs, inCcpMap); startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]);
//sendBom(list); //sendBom(list);
} }
else { else {

File diff suppressed because it is too large Load Diff

@ -1,4 +1,6 @@
#include "CRUL_server_call_httpserver.h" #include "CRUL_server_call_httpserver.h"
#include "dfl_custom.h"
#include "util.h"
#include <map> #include <map>
#include <string> #include <string>
#include <sstream> #include <sstream>
@ -10,6 +12,27 @@ size_t write_data(void* ptr, size_t size, size_t nmemb, void* stream) {
*((stringstream*)stream) << data << endl; *((stringstream*)stream) << data << endl;
return size * nmemb; return size * nmemb;
} }
string replace(string str, string s1, string s2) {
/*int pos;
pos = str.find(s1);
while (pos != -1) {
// str.length()求字符的长度注意str必须是string类型
str.replace(pos, string(s1).length(), s2);
pos = str.find(s1);
}*/
vector<string> vec;
Split(str, s1, vec);
string res = "";
for (int i = 0; i < vec.size(); i++) {
if (res.size() > 0) {
res.append(s2);
}
res.append(vec[i]);
}
return res;
}
string callHttpserver(string signinfoJsonString, string url) { string callHttpserver(string signinfoJsonString, string url) {
CURL* curl; CURL* curl;
CURLcode res; CURLcode res;
@ -66,25 +89,38 @@ string callFsHttpserver(string signinfoJsonString, string url) {
printf("str_json===>%s\n", str_json.c_str()); printf("str_json===>%s\n", str_json.c_str());
return str_json; return str_json;
} }
//gfpoappÕýʽ 192.168.0.184²âÊÔ //gfpoapp正式 192.168.0.184 gfpot01测试
string callHttpserver2(string signinfoJsonString) { string callHttpserver2(string signinfoJsonString, char* url) {
CURL* curl; CURL* curl;
CURLcode res; CURLcode res;
std::stringstream out; std::stringstream out;
curl = curl_easy_init(); curl = curl_easy_init();
if (curl) { if (curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_URL, "http://gfpoapp:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"); //curl_easy_setopt(curl, CURLOPT_URL, "http://gfpot01:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "http"); curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
string key = "Authorization: Basic ";
if (tc_strstr(url, "10.10.101.219") == NULL && tc_strstr(url, "gfpoapp") == NULL) {
key.append("cG9fcmZjOjFxYXohUUFa");
}
else {
key.append("c2hwbG06c2FwQDIwMTk=");
}
struct curl_slist* headers = NULL; struct curl_slist* headers = NULL;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); headers = curl_slist_append(headers, "Content-Type: application/xml"); //cG9fcmZjOjFxYXohUUFa测试
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out); headers = curl_slist_append(headers, key.c_str()); //c2hwbG06c2FwQDIwMTk=正式
headers = curl_slist_append(headers, "Content-Type: application/xml"); //c2hwb2RldjpzYXBAMjAxOQ==²âÊÔ headers = curl_slist_append(headers, "Cookie: JSESSIONID=-E6lQ1chbNdpncO4u4bcyWTq975hjwH2lQQB_SAPqDb0iHxoW4xB8Tlcn2TAho7J; JSESSIONMARKID=5HZ08QQuXWa7hQoZajm-ZJRySpCVLLwytn1_aVBAE; MYSAPSSO2=AjExMDAgAA1wb3J0YWw6cG9fcmZjiAAHZGVmYXVsdAEABlBPX1JGQwIAAzAwMAMAA1BJVAQADDIwMjQwNTEwMDkwNAUABAAAAAgKAAZQT19SRkP%2FAQQwggEABgkqhkiG9w0BBwKggfIwge8CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGBzzCBzAIBATAiMB0xDDAKBgNVBAMTA1BJVDENMAsGA1UECxMESjJFRQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwNTEwMDkwNDE2WjAjBgkqhkiG9w0BCQQxFgQUuzRiZLjaMRv5dYl%2FRB9b2rsfWyQwCQYHKoZIzjgEAwQuMCwCFE6u4YZRTlITKJx2!2UzEsO7e1QkAhRTF5kPjf4ueRx7Qt!JrN%2FZ0iWS1A%3D%3D; saplb_*=(J2EE17077720)17077750");
headers = curl_slist_append(headers, "Authorization: Basic c2hwbG06c2FwQDIwMTk="); //c2hwbG06c2FwQDIwMTk=Õýʽ
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char* data = signinfoJsonString.c_str(); //string xmlStr = replace(signinfoJsonString, "\"", "\\\"");
//xmlStr = replace(xmlStr, "\r", "");
//xmlStr = replace(xmlStr, "\n", "");
const char* data = G2U(signinfoJsonString.c_str());
printf("xmlStr==> %s\n", data);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out);
res = curl_easy_perform(curl); res = curl_easy_perform(curl);
if (res != 0) { if (res != 0) {
string errMessage = curl_easy_strerror(res); string errMessage = curl_easy_strerror(res);

@ -3,6 +3,6 @@
#include <curl\curl.h> #include <curl\curl.h>
using namespace std; using namespace std;
string callHttpserver(string signinfoJsonString, string url); string callHttpserver(string signinfoJsonString, string url);
string callHttpserver2(string signinfoJsonString); string callHttpserver2(string signinfoJsonString, char* url);
string callHttpGet(string url); string callHttpGet(string url);
string callFsHttpserver(string signinfoJsonString, string url); string callFsHttpserver(string signinfoJsonString, string url);

@ -175,6 +175,7 @@
<ClCompile Include="GetBOMProp.cpp" /> <ClCompile Include="GetBOMProp.cpp" />
<ClCompile Include="ocilib.cpp" /> <ClCompile Include="ocilib.cpp" />
<ClCompile Include="readBomMsg.cpp" /> <ClCompile Include="readBomMsg.cpp" />
<ClCompile Include="SAPGY.cxx" />
<ClCompile Include="SAPZYGG2.cxx" /> <ClCompile Include="SAPZYGG2.cxx" />
<ClCompile Include="SAPZZNewOp.cxx" /> <ClCompile Include="SAPZZNewOp.cxx" />
<ClCompile Include="soapC.cpp" /> <ClCompile Include="soapC.cpp" />

@ -72,9 +72,6 @@
<ClCompile Include="SAPZZNewOp.cxx"> <ClCompile Include="SAPZZNewOp.cxx">
<Filter>源文件</Filter> <Filter>源文件</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="BomSapWh.cxx">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="tinyxml\tinystr.cpp"> <ClCompile Include="tinyxml\tinystr.cpp">
<Filter>tinyxml</Filter> <Filter>tinyxml</Filter>
</ClCompile> </ClCompile>
@ -87,6 +84,12 @@
<ClCompile Include="tinyxml\tinyxmlparser.cpp"> <ClCompile Include="tinyxml\tinyxmlparser.cpp">
<Filter>tinyxml</Filter> <Filter>tinyxml</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="BomSapWh.cxx">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="SAPGY.cxx">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="dfl_custom.h"> <ClInclude Include="dfl_custom.h">

@ -135,10 +135,29 @@ int readBomMsg(vector<tag_t> ccpVector, char * groupName, char* projectUid, char
break; break;
} }
log("fa ===>%s\n", fa.c_str()); log("fa ===>%s\n", fa.c_str());
if (tc_strcmp(fa.c_str(), "C") == 0) { if (tc_strcmp(groupName, "M060") == 0) {
SAPZZNewOp(ccpVector, projectNo, groupName, zt2_WBSNo, BomSapWh(ccpVector, projectNo, groupName, zt2_WBSNo,
fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str()); fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str());
} }
else if (tc_strcmp(fa.c_str(), "C") == 0) {
vector<string> dists;
int pref_cnt = 0;
char **pref = NULL;
ITKCALL(PREF_ask_char_values("M005_task_distribute", &pref_cnt, &pref));
for (int i = 0; i < pref_cnt; i++) {
vector<string> vec;
Split(pref[i], "|", vec);
if (vec.size() != 3) {
continue;
}
if (tc_strstr(vec[1].c_str(), "总装") != NULL) {
continue;
}
dists.push_back(vec[0]);
}
SAPZZNewOp(ccpVector, projectNo, groupName, zt2_WBSNo,
fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str(), dists, objectName);
}
else if (tc_strcmp(transfer, "壳体方案传递") == 0) { else if (tc_strcmp(transfer, "壳体方案传递") == 0) {
getKTBom(ccpVector, projectNo, groupName, zt2_WBSNo, getKTBom(ccpVector, projectNo, groupName, zt2_WBSNo,
fileDate, errorBuff, code, transfer, userName, objectName); fileDate, errorBuff, code, transfer, userName, objectName);
@ -152,8 +171,11 @@ int readBomMsg(vector<tag_t> ccpVector, char * groupName, char* projectUid, char
fileDate, errorBuff, code, transfer, userName, objectName); fileDate, errorBuff, code, transfer, userName, objectName);
} }
else if (tc_strcmp(transfer, "产成品BOM传递") == 0 && tc_strcmp(fa.c_str(), "E") == 0) { else if (tc_strcmp(transfer, "产成品BOM传递") == 0 && tc_strcmp(fa.c_str(), "E") == 0) {
vector<string> dists;
SAPPartZYOp2(ccpVector, projectNo, groupName, zt2_WBSNo,
fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str(), objectName);
SAPZZNewOp(ccpVector, projectNo, groupName, zt2_WBSNo, SAPZZNewOp(ccpVector, projectNo, groupName, zt2_WBSNo,
fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str()); fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str(), dists, objectName);
} }
else { else {
getCcpAndBom(ccpVector, projectNo, groupName, zt2_WBSNo, getCcpAndBom(ccpVector, projectNo, groupName, zt2_WBSNo,

@ -0,0 +1,294 @@
#include "SendSap.h"
void addLastRevisions(map<tag_t, vector<tag_t>> items2, vector<tag_t>& cParts) {
for (map<tag_t, vector<tag_t>>::iterator it = items2.begin(); it != items2.end(); it++) {
vector<tag_t> revs = it->second;
if (revs.size() == 1) {
cParts.push_back(revs[0]);
continue;
}
else if (revs.size() > 1) {
tag_t max_Rev = NULLTAG;
string s = "";
int index = -1;
for (int i = 0; i < revs.size(); i++) {
char* item_id = NULL;
ITKCALL(AOM_UIF_ask_value(revs[i], "item_revision_id", &item_id));
if (s.length() == 0) {
s = item_id;
max_Rev = revs[i];
for (int j = 0; j < s.length(); j++) {
if (s[j] >= '0' && s[j] <= '9') {
index = j;
break;
}
}
}
else {
string temp = item_id;
if (index != -1) {
int compare = tc_strcmp(temp.substr(0, index).c_str(), s.substr(0, index).c_str());
if (compare > 0) {
s = temp;
max_Rev = revs[i];
}
else if (compare == 0) {
string s1 = s.substr(index, s.length() - index);
string temp1 = temp.substr(index, temp.length() - index);
int min = s1.length();
if (min > temp1.length())
min = temp1.length();
for (int k = 0; k < min; k++) {
if (temp1[k] > s1[k]) {
s = temp;
max_Rev = revs[i];
break;
}
}
if (temp1.length() > min) {
s = temp;
max_Rev = revs[i];
}
}
}
else if (tc_strcmp(temp.c_str(), s.c_str()) > 0) {
s = temp;
max_Rev = revs[i];
}
}
}
cParts.push_back(max_Rev);
}
}
}
void getAllNum(char* id, char* revid, double n, map<string, vector<string>>& allcomp) {
char nums[8] = "";
if (allcomp.count(id) > 0) {
double num = stod(allcomp[id][1]);
sprintf(nums, "%f", num + n);
}
else {
sprintf(nums, "%f", n);
}
vector<string> value;// = { revid, nums };
value.push_back(revid);
value.push_back(nums);
allcomp[id] = value;
}
void getAllItem(tag_t parent_line, double parent_num, vector<tag_t>& _list, map<string, vector<string>>& allcomp) {
tag_t rev = NULLTAG;
ITKCALL(AOM_ask_value_tag(parent_line, "bl_line_object", &rev));
char* type = NULL, *zt2_Source = NULL;
ITKCALL(WSOM_ask_object_type2(rev, &type));
ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source));
if (tc_strcmp(type, "zt2_Design3DRevision") == 0 && (tc_strcmp(zt2_Source, "外购") == 0 || tc_strcmp(zt2_Source, "S2") == 0)) {
return;
}
int c_line_count = 0;
tag_t *c_line_tags = NULL;
ITKCALL(BOM_line_ask_all_child_lines(parent_line, &c_line_count, &c_line_tags));
for (int i = 0; i < c_line_count; i++) {
tag_t child = NULLTAG;
ITKCALL(AOM_ask_value_tag(c_line_tags[i], "bl_line_object", &child));
char* child_id = NULL, *child_revid = NULL, *child_quantity = NULL;
ITKCALL(AOM_UIF_ask_value(child, "item_id", &child_id));
ITKCALL(AOM_UIF_ask_value(child, "item_revision_id", &child_revid));
ITKCALL(AOM_UIF_ask_value(c_line_tags[i], "bl_quantity", &child_quantity));
if (!child_quantity || tc_strlen(child_quantity) == 0) {
DOFREE(child_quantity);
child_quantity = (char *)MEM_alloc(2 * sizeof(char));
tc_strcpy(child_quantity, "1");
}
double child_num = parent_num * stod(child_quantity);
getAllNum(child_id, child_revid, child_num, allcomp);
getAllItem(c_line_tags[i], child_num, _list, allcomp);
int c_line_count2 = 0;
tag_t *c_line_tags2 = NULL;
ITKCALL(BOM_line_ask_all_child_lines(c_line_tags[i], &c_line_count2, &c_line_tags2));
if (c_line_count2 > 0) {
_list.push_back(child);
}
}
}
void ProcessMemoryTree() {
}
void sendRev(tag_t rev) {
}
void readBomInfo(tag_t ccp, vector<tag_t> schemes, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>& list, char* groupName, char* now) {
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head;
char* zt2_MaterialNo = NULL, *zt2_WBSNo = NULL, *zt2_unit = NULL, *type = NULL, *zt2_BOMScheme = NULL;
ITKCALL(AOM_UIF_ask_value(ccp, "zt2_MaterialNo", &zt2_MaterialNo));
ITKCALL(AOM_UIF_ask_value(ccp, "zt2_WBSNo", &zt2_WBSNo));
tag_t item = NULLTAG;
ITKCALL(ITEM_ask_item_of_rev(ccp, &item));
ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit));
//char* unit = getUnti(zt2_unit);
log("str = [%s] \n", zt2_unit);
head.PSPNR = zt2_WBSNo;
head.MATNR = zt2_MaterialNo;
head.STLAN = (char*)"1";
head.STLAL = (char*)"1";
head.BMENG = (char*)"1";
ITKCALL(WSOM_ask_object_type2(ccp, &type));
ITKCALL(AOM_UIF_ask_value(ccp, "zt2_BOMScheme", &zt2_BOMScheme));
if (tc_strcmp(type, "Part Revision") == 0 && tc_strcmp(zt2_BOMScheme, "汇总") == 0) {
char* zt2_Quantity = NULL;
ITKCALL(AOM_UIF_ask_value(ccp, "zt2_Quantity", &zt2_Quantity));
if (zt2_Quantity && tc_strlen(zt2_Quantity) != 0 && tc_strcmp(zt2_Quantity, "0") != 0) {
head.BMENG = zt2_Quantity;
}
}
head.WERKS = groupName;
head.BMEIN = zt2_unit;
head.DATUV = now;
int c_line_count = schemes.size();
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM* items_items =
new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM[c_line_count];
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS items;
for (int i = 0; i < c_line_count; i++) {
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item;
tag_t rev2 = schemes[i];
char* cName = NULL, bl_seq_no[8] = "", *zt2_MaterialNo2 = NULL, *zt2_unit2 = NULL;
ITKCALL(AOM_ask_value_string(rev2, "object_name", &cName));
if (tc_strstr(cName, "一次规范书") != NULL) {
tc_strcpy(bl_seq_no, "0010");
}else if (tc_strstr(cName, "二次规范书") != NULL) {
tc_strcpy(bl_seq_no, "0020");
}
else if(tc_strstr(cName, "结构方案") != NULL) {
tc_strcpy(bl_seq_no, "0030");
}
items_item.DATUV = now;
items_item.POSTP = (char*)"L";
items_item.POSNR = bl_seq_no;
ITKCALL(AOM_UIF_ask_value(rev2, "zt2_MaterialNo", &zt2_MaterialNo2));
items_item.IDNRK = zt2_MaterialNo2;
items_item.MENGE = (char*)"1";
items_item.SORTF = getZYCCPSortNo(rev2);
if (tc_strstr(zt2_MaterialNo2, "9900000191") != NULL) {
items_item.POTX1 = "PCM00825";
}
else {
items_item.POTX1 = "";
}
tag_t item2 = NULLTAG;
ITKCALL(ITEM_ask_item_of_rev(rev2, &item2));
ITKCALL(AOM_ask_value_string(item2, "zt2_unit", &zt2_unit2));
items_item.MEINS = zt2_unit2;
items_items[i] = items_item;
}
items.ITEM = items_items;
items.__sizeITEM = c_line_count;
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST list1;
list1.HEAD = head;
log("list1.HEAD %s ", list1.HEAD.BMEIN);
list1.ITEMS = items;
list.push_back(list1);
}
void sendToSap2(vector<tag_t> ccpVector, char* groupName, char* now, char* code, char* wbs) {
log("************** SAPZYGG2 **************");
int pref_cnt = 0;
char **urls = NULL;
ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls));
map<tag_t, vector<tag_t>> cPart_schemes;
vector<tag_t> bom_revs;
vector<tag_t> isCheck_FactoryNos;
map<string, vector<string>> inCcpMap;//记录单元对应的产成品物料编码
for (int len = 0; len < ccpVector.size(); len++) {
tag_t rev = ccpVector[len], *factoryNos;
char* revUid = NULL;
ITK__convert_tag_to_uid(rev, &revUid);
log("产成品UID:%s", revUid);
int num = 0;
ITKCALL(AOM_ask_value_tags(rev, "ZT2_FactoryNumber", &num, &factoryNos));
if (num == 0) {
bom_revs.push_back(rev);
}
else {
map<tag_t, vector<tag_t>> items2;
vector<tag_t> revs;
for (int i = 0; i < num; i++) {
if (find(isCheck_FactoryNos.begin(), isCheck_FactoryNos.end(), factoryNos[i]) != isCheck_FactoryNos.end())
continue;
isCheck_FactoryNos.push_back(factoryNos[i]);
int n_references = 0;
int* levels = 0;
tag_t* references_tag;
char** relation_type_name = NULL;
//通过出厂编号查找到图纸
ITKCALL(WSOM_where_referenced(factoryNos[i], 1, &n_references, &levels, &references_tag, &relation_type_name));
for (int i = 0; i < n_references; i++) {
if (tc_strcmp(relation_type_name[i], "ZT2_FactoryNumber") != 0)
continue;
char *type2 = NULL;
ITKCALL(WSOM_ask_object_type2(references_tag[i], &type2));
if (tc_strcmp(type2, "Part Revision") != 0)
continue;
char* revUid2 = NULL;
ITK__convert_tag_to_uid(references_tag[i], &revUid2);
if (tc_strcmp(revUid, revUid2) == 0)
continue;
char *name2 = NULL;
ITKCALL(AOM_UIF_ask_value(references_tag[i], "object_name", &name2));
if (tc_strstr(name2, "方案") == NULL)
continue;
tag_t item2 = NULLTAG;
ITKCALL(ITEM_ask_item_of_rev(references_tag[i], &item2));
if (items2.count(item2) > 0) {
items2[item2].push_back(references_tag[i]);
}
else {
vector<tag_t> revs2;
revs2.push_back(references_tag[i]);
items2[item2] = revs2;
}
addLastRevisions(items2, revs);
if (revs.size() > 0) {
cPart_schemes[rev] = revs;
}
else {
bom_revs.push_back(rev);
}
}
}
}
}
map<tag_t, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>> mapList;
for (map<tag_t, vector<tag_t>>::iterator it = cPart_schemes.begin(); it != cPart_schemes.end(); it++) {
tag_t ccp = it->first;
vector<tag_t> schemes = it->second;
//if (schemes.size() > 0) {}
char* revUid = NULL, *zt2_MaterialNo = NULL;
ITK__convert_tag_to_uid(ccp, &revUid);
log("产成品UID:%s", revUid);
if (inCcpMap.count(revUid) > 0) {
log("folderName =>%s", zt2_MaterialNo);
inCcpMap[revUid].push_back(zt2_MaterialNo);
continue;
}
vector<string> ccpMaterialMap;
ccpMaterialMap.push_back(zt2_MaterialNo);
inCcpMap[revUid] = ccpMaterialMap;
vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list;
readBomInfo(ccp, schemes, list, groupName, now);
if (list.size() > 0) {
mapList[ccp] = list;
}
}
startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]);
}

@ -0,0 +1,6 @@
//#include <string>
//#include <tc\tc_macros.h>
//#include <bom/bom.h>
#include "SendSap.h"

@ -56,10 +56,14 @@ tag_t getICSComp(char* codeRemark, int unct, char* query) {
* *
* SAPUtil.getClassPart * SAPUtil.getClassPart
*/ */
tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map<string, tag_t>& by_materials) { tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map<string, tag_t>& by_materials, string& errMsg) {
char* zt2_MaterialMark = NULL; char* zt2_MaterialMark = NULL;
ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialMark", &zt2_MaterialMark)); ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialMark", &zt2_MaterialMark));
if (!zt2_MaterialMark || tc_strlen(zt2_MaterialMark) == 0) { if (!zt2_MaterialMark || tc_strlen(zt2_MaterialMark) == 0) {
char *item_id = NULL;
ITKCALL(AOM_ask_value_string(rev, "item_id", &item_id));
log("未填写材料标记,版本ID:%s", item_id);
errMsg.append("未填写材料标记,版本ID:").append(item_id).append("\\n");
return NULLTAG; return NULLTAG;
} }
if (by_materials.count(zt2_MaterialMark) > 0) { if (by_materials.count(zt2_MaterialMark) > 0) {
@ -70,7 +74,8 @@ tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map<string, tag_t>& by
ITKCALL(AOM_ask_value_tags(rev, "ZT2_Material", &num, &contexts2)); ITKCALL(AOM_ask_value_tags(rev, "ZT2_Material", &num, &contexts2));
if (num > 0) if (num > 0)
return contexts2[0]; return contexts2[0];
log("查询不到[材料标记]为[%s]的原材料\n", zt2_MaterialMark); log("查询不到[材料标记]为[%s]的原材料", zt2_MaterialMark);
errMsg.append("查询不到[材料标记]为[").append(zt2_MaterialMark).append("]的原材料\\n");
return NULLTAG; return NULLTAG;
} }
return by_materials[zt2_MaterialMark]; return by_materials[zt2_MaterialMark];
@ -83,7 +88,8 @@ tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map<string, tag_t>& by
ITKCALL(AOM_ask_value_tags(rev, "ZT2_Material", &num, &contexts2)); ITKCALL(AOM_ask_value_tags(rev, "ZT2_Material", &num, &contexts2));
if (num > 0) if (num > 0)
return contexts2[0]; return contexts2[0];
log("查询不到[材料标记]为[%s]的原材料\n", zt2_MaterialMark); log("查询不到[材料标记]为[%s]的原材料", zt2_MaterialMark);
errMsg.append("查询不到[材料标记]为[").append(zt2_MaterialMark).append("]的原材料\\n");
return NULLTAG; return NULLTAG;
} }
else { else {
@ -98,6 +104,10 @@ tag_t getClassPartDB(tag_t rev, char* groupName, map<string, tag_t>& by_material
char* zt2_MaterialMark = NULL; char* zt2_MaterialMark = NULL;
ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialMark", &zt2_MaterialMark)); ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialMark", &zt2_MaterialMark));
if (!zt2_MaterialMark || tc_strlen(zt2_MaterialMark) == 0) { if (!zt2_MaterialMark || tc_strlen(zt2_MaterialMark) == 0) {
char *item_id = NULL;
ITKCALL(AOM_ask_value_string(rev, "item_id", &item_id));
log("未填写材料标记,版本ID:%s", item_id);
errMsg.append("未填写材料标记,版本ID:").append(item_id).append("\\n");
return NULLTAG; return NULLTAG;
} }
string sql = "select materialno,materialutilization,materialunit FROM \"CHINT_"; string sql = "select materialno,materialutilization,materialunit FROM \"CHINT_";
@ -113,16 +123,16 @@ tag_t getClassPartDB(tag_t rev, char* groupName, map<string, tag_t>& by_material
log("search3 ===> %s\n", sql.c_str()); log("search3 ===> %s\n", sql.c_str());
QuerySQLNoInputParam((char*)sql.c_str(), &outputColumn1, &outputValueCount1, &outputValue1); QuerySQLNoInputParam((char*)sql.c_str(), &outputColumn1, &outputValueCount1, &outputValue1);
if (outputValueCount1 == 0) { if (outputValueCount1 == 0) {
log("查询不到[材料标记]为[%s]的原材料\n", zt2_MaterialMark); log("查询不到[材料标记]为[%s]的原材料", zt2_MaterialMark);
errMsg.append("查询不到[材料标记]为[").append(zt2_MaterialMark).append("]的原材料\n"); errMsg.append("查询不到[材料标记]为[").append(zt2_MaterialMark).append("]的原材料\\n");
return NULLTAG; return NULLTAG;
} }
materials[zt2_MaterialMark] = outputValue1[0][1]; materials[zt2_MaterialMark] = outputValue1[0][1];
tag_t find = NULLTAG; tag_t find = NULLTAG;
ITKCALL(ITEM_find_item(outputValue1[0][0], &find)); ITKCALL(ITEM_find_item(outputValue1[0][0], &find));
if (find == NULLTAG) { if (find == NULLTAG) {
log("tc中查询不到[ID]为[%s]的原材料\n", zt2_MaterialMark); log("tc中查询不到[ID]为[%s]的原材料", zt2_MaterialMark);
errMsg.append("tc中查询不到[ID]为[").append(zt2_MaterialMark).append("]的原材料\n"); errMsg.append("tc中查询不到[ID]为[").append(zt2_MaterialMark).append("]的原材料\\n");
return NULLTAG; return NULLTAG;
} }
by_materials[zt2_MaterialMark] = find; by_materials[zt2_MaterialMark] = find;
@ -351,7 +361,7 @@ string getICSProperty(tag_t comp, char* codeRemark, char* prop) {
} }
return ""; return "";
} }
// 根据材料利用率获取组件用量(若找不到材料标记默认为0.85)
char* getZYMENGE(double dw, tag_t material, char* codeMark) { char* getZYMENGE(double dw, tag_t material, char* codeMark) {
//double dw = stod(zt2_zt2_DesignWeight); //double dw = stod(zt2_zt2_DesignWeight);
double lyl = -1, res = 0; double lyl = -1, res = 0;
@ -443,7 +453,7 @@ char* getZYSAPMENGE2(string lylStr, tag_t design, tag_t line, boolean isBottom,
if (!ZT2_TYWeight || tc_strlen(ZT2_TYWeight) == 0) { if (!ZT2_TYWeight || tc_strlen(ZT2_TYWeight) == 0) {
char *os = NULL; char *os = NULL;
ITKCALL(AOM_ask_value_string(design, "object_string", &os)); ITKCALL(AOM_ask_value_string(design, "object_string", &os));
errMsg.append(os).append("设计重量为空\n"); errMsg.append(os).append("设计重量为空\\n");
return "0"; return "0";
} }
} }
@ -466,6 +476,22 @@ char* getZYSAPMENGE2(string lylStr, tag_t design, tag_t line, boolean isBottom,
return buffer; return buffer;
} }
} }
//lidy20240530增加原本注释的虚拟工艺逻辑
tag_t getMrProcess(char *groupName) {
int pref_cnt = 0;
char **pref = NULL;
ITKCALL(PREF_ask_char_values("CHINT_GYLX", &pref_cnt, &pref));
for (int i = 0; i < pref_cnt; i++) {
vector<string> vec;
Split(pref[i], ":", vec);
if (tc_strcmp(vec[0].c_str(), groupName) == 0) {
tag_t proc = NULLTAG;
ITK__convert_uid_to_tag(vec[1].c_str(), &proc);
return proc;
}
}
return NULLTAG;
}
/* /*
* BOMSAP * BOMSAP
* SAPUtil.recurZYGGSAPNoProc * SAPUtil.recurZYGGSAPNoProc
@ -513,17 +539,15 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source)); ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source));
log("zt2_Source =>%s", zt2_Source); log("zt2_Source =>%s", zt2_Source);
boolean equals = (zt2_Source && (tc_strcmp(zt2_Source, "外购") == 0 || tc_strcmp(zt2_Source, "S2") == 0)); boolean equals = (zt2_Source && (tc_strcmp(zt2_Source, "外购") == 0 || tc_strcmp(zt2_Source, "S2") == 0));
if (partRev != NULL) { if (partRev != NULLTAG) {
if (meops == NULL) { if (meops == NULLTAG) {
if (!equals && c_line_count > 0) { if (!equals && c_line_count > 0) {
log("自制获取工艺路线"); log("自制获取工艺路线");
//java中getMrProcess方法已注释只返回null因此该逻辑已无实际意义 //java中getMrProcess方法已注释只返回null因此该逻辑已无实际意义
/*TCComponentMEProcessRevision mrProcess = getMrProcess(groupID, session); meops = getMrProcess(groupName);
TXTUtil.writeTXT(txtPath, "图纸[" + rev + "]工艺信息:" + mrProcess); if (meops != NULLTAG) {
if (mrProcess != null) { readBopInfo1YH(meops, partRev, true, gy_meops, needTCM_meops, groupName, now, proclist);
SAPUtil.readBopInfo1(mrProcess, partRev, session, now, }
txtPath, proclist, groupName, gy_meops, needTCM_meops, false);
}*/
} }
} }
else { else {
@ -560,6 +584,7 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
bomIsExist.push_back(zt2_MaterialNo); bomIsExist.push_back(zt2_MaterialNo);
} }
if (c_line_count == 0) { if (c_line_count == 0) {
log("c_line_count == 0");
//char* zt2_Source = NULL; //char* zt2_Source = NULL;
//ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source)); //ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source));
if (tc_strcmp(type, "ZT2_Design3DRevision") == 0 && (tc_strcmp(zt2_Source, "自制") == 0 || tc_strcmp(zt2_Source, "S1") == 0) if (tc_strcmp(type, "ZT2_Design3DRevision") == 0 && (tc_strcmp(zt2_Source, "自制") == 0 || tc_strcmp(zt2_Source, "S1") == 0)
@ -570,7 +595,7 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
comp = getClassPartDB(rev, groupName, by_materials, materials, errMsg); comp = getClassPartDB(rev, groupName, by_materials, materials, errMsg);
} }
else { else {
comp = getClassPart(rev, codeRemark, unct, by_materials); comp = getClassPart(rev, codeRemark, unct, by_materials, errMsg);
} }
char* os = NULL, *sortno = NULL; char* os = NULL, *sortno = NULL;
boolean isHaveProcess = false; boolean isHaveProcess = false;
@ -598,15 +623,16 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
ITKCALL(AOM_ask_value_string(line, "ZT2_ClassificationNo", &sortno)); ITKCALL(AOM_ask_value_string(line, "ZT2_ClassificationNo", &sortno));
} }
log("工序编码 =>%s", sortno); log("工序编码 =>%s", sortno);
char *zt2_MaterialNo = NULL, *zt2_WBSNo = NULL, *zt2_unit = NULL;
ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo));
log("zt2_MaterialNo ==>%s", zt2_MaterialNo);
ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo));
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head;
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM* items_items = _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM* items_items =
new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM[1]; new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM[1];
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS items; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS items;
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item;
if (partRev != NULLTAG) {
char *zt2_MaterialNo = NULL, *zt2_WBSNo = NULL, *zt2_unit = NULL;
ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo));
log("zt2_MaterialNo ==>%s", zt2_MaterialNo);
ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo));
tag_t item = NULLTAG; tag_t item = NULLTAG;
ITKCALL(ITEM_ask_item_of_rev(partRev, &item)); ITKCALL(ITEM_ask_item_of_rev(partRev, &item));
ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit));
@ -615,6 +641,7 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
head.PSPNR = zt2_WBSNo; head.PSPNR = zt2_WBSNo;
head.MATNR = zt2_MaterialNo; head.MATNR = zt2_MaterialNo;
head.BMEIN = zt2_unit; head.BMEIN = zt2_unit;
}
head.STLAN = (char*)"1"; head.STLAN = (char*)"1";
head.STLAL = (char*)"1"; head.STLAL = (char*)"1";
head.BMENG = (char*)"1"; head.BMENG = (char*)"1";
@ -630,12 +657,12 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
items_item.POSNR = "0010"; items_item.POSNR = "0010";
if (!isLj) { if (!isLj) {
if (!isHaveProcess) { if (!isHaveProcess) {
errMsg.append(line_os).append("缺少工艺路线\n"); errMsg.append(line_os).append("缺少工艺路线\\n");
} }
else if (!sortno || tc_strlen(sortno) == 0) { else if (!sortno || tc_strlen(sortno) == 0) {
char* mos = NULL; char* mos = NULL;
ITKCALL(AOM_ask_value_string(meops, "object_string", &mos)); ITKCALL(AOM_ask_value_string(meops, "object_string", &mos));
errMsg.append("请维护").append(mos).append("工艺路线的工序编码\n"); errMsg.append("请维护").append(mos).append("工艺路线的工序编码\\n");
} }
} }
if (comp != NULLTAG) { if (comp != NULLTAG) {
@ -646,6 +673,9 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
//tag_t item2; //tag_t item2;
char *zt2_MaterialNo2 = NULL, *zt2_unit2 = NULL; char *zt2_MaterialNo2 = NULL, *zt2_unit2 = NULL;
ITKCALL(AOM_UIF_ask_value(crev, "zt2_MaterialNo", &zt2_MaterialNo2)); ITKCALL(AOM_UIF_ask_value(crev, "zt2_MaterialNo", &zt2_MaterialNo2));
if (!zt2_MaterialNo2 || tc_strlen(zt2_MaterialNo2) == 0) {
errMsg.append(line_os).append("物料号为空;");
}
//ITKCALL(ITEM_ask_item_of_rev(comp, &item2)); //ITKCALL(ITEM_ask_item_of_rev(comp, &item2));
ITKCALL(AOM_ask_value_string(comp, "zt2_unit", &zt2_unit2)); ITKCALL(AOM_ask_value_string(comp, "zt2_unit", &zt2_unit2));
items_item.IDNRK = zt2_MaterialNo2; items_item.IDNRK = zt2_MaterialNo2;
@ -672,7 +702,7 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
else { else {
char* mos = NULL; char* mos = NULL;
ITKCALL(AOM_ask_value_string(rev, "object_string", &mos)); ITKCALL(AOM_ask_value_string(rev, "object_string", &mos));
errMsg.append(mos).append("未能匹配到对应的原材料\n"); errMsg.append(mos).append("未能匹配到对应的原材料\\n");
items_item.IDNRK = ""; items_item.IDNRK = "";
items_item.MEINS = ""; items_item.MEINS = "";
items_item.MENGE = ""; items_item.MENGE = "";
@ -700,6 +730,9 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
ITKCALL(AOM_ask_value_string(partRev, "object_string", &os)); ITKCALL(AOM_ask_value_string(partRev, "object_string", &os));
ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo)); ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo));
log("zt2_MaterialNo ==>%s", zt2_MaterialNo); log("zt2_MaterialNo ==>%s", zt2_MaterialNo);
if (!zt2_MaterialNo || tc_strlen(zt2_MaterialNo) == 0) {
errMsg.append(line_os).append("物料号为空;");
}
ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo)); ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo));
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head;
tag_t item; tag_t item;
@ -738,12 +771,21 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
} }
ITKCALL(AOM_UIF_ask_value(part2, "zt2_MaterialNo", &zt2_MaterialNo2)); ITKCALL(AOM_UIF_ask_value(part2, "zt2_MaterialNo", &zt2_MaterialNo2));
ITKCALL(ITEM_ask_item_of_rev(rev2, &item2)); if (!zt2_MaterialNo2 || tc_strlen(zt2_MaterialNo2) == 0) {
buff.append("物料号为空;");
}
ITKCALL(ITEM_ask_item_of_rev(part2, &item2));
ITKCALL(AOM_ask_value_string(item2, "zt2_unit", &zt2_unit2)); ITKCALL(AOM_ask_value_string(item2, "zt2_unit", &zt2_unit2));
ITKCALL(AOM_UIF_ask_value(c_line_tag, "bl_sequence_no", &bl_sequence_no)); ITKCALL(AOM_UIF_ask_value(c_line_tag, "bl_sequence_no", &bl_sequence_no));
ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_ClassificationNo", &sortno)); ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_ClassificationNo", &sortno));
if (!sortno || tc_strlen(sortno) == 0) {
buff.append("工序编码为空;");
}
ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_Remark", &ZT2_Remark)); ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_Remark", &ZT2_Remark));
ITKCALL(AOM_UIF_ask_value(rev2, "zt2_SapState", &zt2_SapState)); ITKCALL(AOM_UIF_ask_value(rev2, "zt2_SapState", &zt2_SapState));
char *line_os2 = NULL;
ITKCALL(AOM_ask_value_string(c_line_tag, "object_string", &line_os2));
log("c_line_tag:%s\n", line_os2);
char *menge = NULL;// = getZYSAPMENGE(rev2, NULLTAG, c_line_tag, false, codeRemark, errMsg); char *menge = NULL;// = getZYSAPMENGE(rev2, NULLTAG, c_line_tag, false, codeRemark, errMsg);
menge = (char*)MEM_alloc((16 + 1) * sizeof(char)); menge = (char*)MEM_alloc((16 + 1) * sizeof(char));
@ -771,8 +813,9 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m
if (buff.length() > 0 && tc_strstr(errMsg.c_str(), msg.c_str()) == NULL) { if (buff.length() > 0 && tc_strstr(errMsg.c_str(), msg.c_str()) == NULL) {
errMsg.append("\\n").append(msg); errMsg.append("\\n").append(msg);
} }
if ((tc_strcmp(zt2_SapState, "已传") == 0 || tc_strcmp(zt2_SapState, "2") == 0) && !isZT) { log("zt2_SapState ===>%s", zt2_SapState);
continue; if ((tc_strcmp(zt2_SapState, "已传") == 0 || tc_strcmp(zt2_SapState, "3") == 0) && !isZT) {
//continue;
} }
recurZYGGSAPNoProc(rev2, part2, groupName, c_line_tag, gy_meops, needTCM_meops, now, proclist, bomIsExist, recurZYGGSAPNoProc(rev2, part2, groupName, c_line_tag, gy_meops, needTCM_meops, now, proclist, bomIsExist,
list, codeRemark, unct, by_materials, isZT, errMsg, inCcpMap, ccpMaterialMap, matr); list, codeRemark, unct, by_materials, isZT, errMsg, inCcpMap, ccpMaterialMap, matr);
@ -812,6 +855,24 @@ void SAPZYGG2(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
codeRemark = v2[2]; codeRemark = v2[2];
} }
} }
pref_cnt = 0;
char **urls = NULL;
ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls));
if (pref_cnt < 3) {
errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n");
//
string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' ";
char selectRxfs[800];
string timel;
sprintf(selectRxfs, updateSum.c_str(), code);
log("selectRecord2 ===> %s\n", selectRxfs);
ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit");
//错误数据已发送飞书提醒
sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName);
return;
}
//记录是否有重复的出厂编号 //记录是否有重复的出厂编号
vector<tag_t> isCheck_FactoryNos; vector<tag_t> isCheck_FactoryNos;
//记录产成品 对应的 电气BOM集合 //记录产成品 对应的 电气BOM集合
@ -837,7 +898,7 @@ void SAPZYGG2(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
//传递出厂编号的记录日志信息 //传递出厂编号的记录日志信息
log("出厂编号数量:%zd", list_Factorys.size()); log("出厂编号数量:%zd", list_Factorys.size());
logCcbh(list_Factorys); logCcbh(list_Factorys);
sendFactoryNo(list_Factorys); sendFactoryNo(list_Factorys, urls[0]);
tag_t designRev = NULLTAG; tag_t designRev = NULLTAG;
if (num > 0) { if (num > 0) {
int n_references = 0; int n_references = 0;
@ -922,7 +983,7 @@ void SAPZYGG2(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
ExecuteSQLNoInputParam((char*)"commit"); ExecuteSQLNoInputParam((char*)"commit");
//错误数据已发送飞书提醒 //错误数据已发送飞书提醒
sendNotice(code, errMsgBuf, wbs, userName, projectName); sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName);
return; return;
} }
char *zt2_BOMScheme = NULL; char *zt2_BOMScheme = NULL;
@ -948,7 +1009,7 @@ void SAPZYGG2(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
} }
if (proclist.size() > 0) { if (proclist.size() > 0) {
logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist;
sendProcess(proclist, sendMsg);//proclists.push_back(proclist);//sendProcess(proclist); sendProcess(proclist, sendMsg, urls[1]);//proclists.push_back(proclist);//sendProcess(proclist);
} }
ITKCALL(BOM_close_window(ebom_window)); ITKCALL(BOM_close_window(ebom_window));
@ -957,7 +1018,7 @@ void SAPZYGG2(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
//传递BOM //传递BOM
//logBomMsg(list); //logBomMsg(list);
//sendBom(list, sendMsg); //sendBom(list, sendMsg);
startSplitSend(groupName, mapList, code, wbs, inCcpMap); startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]);
//sendBom(list); //sendBom(list);
} }
else { else {

@ -31,31 +31,101 @@ tag_t getZZDesign(tag_t part, char* groupName) {
} }
} }
} }
// 根据材料利用率获取组件用量
char* getMENGE(double dw, tag_t material, char* codeMark) {
//double dw = stod(zt2_zt2_DesignWeight);
double lyl = -1, res = 0;
string lylStr = getICSProperty(material, codeMark, "材料利用率");
if (lylStr.size() > 0) {
lyl = stod(lylStr);
}
if (lyl > 0) {
res = dw / lyl;
}
char buffer[16];
sprintf(buffer, "%.3f", res);
log("MENGE1:%f==%s", res, buffer);
return buffer;
}
void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map<string, tag_t>& gy_meops, char* getSAPMENGE(tag_t design, tag_t part, tag_t line, boolean isBottom, char* codeMark, string& errMsg) {
//log("getZYSAPMENGE");
char *os = NULL;
ITKCALL(AOM_UIF_ask_value(line, "object_string", &os));
if (isBottom) {
char* ZT2_TYSpecifications = NULL, *ZT2_TYWeight = NULL;
ITKCALL(AOM_UIF_ask_value(line, "ZT2_TYSpecifications", &ZT2_TYSpecifications));
if (ZT2_TYSpecifications && tc_strlen(ZT2_TYSpecifications) > 0) {
ITKCALL(AOM_UIF_ask_value(line, "ZT2_TYWeight", &ZT2_TYWeight));
if (!ZT2_TYWeight || tc_strlen(ZT2_TYWeight) == 0) {
//log("getZYSAPMENGE1");
errMsg.append(os).append("未填写通用件重量;");
return "0";
}
else {
//log("getZYSAPMENGE2");
return getMENGE(stod(ZT2_TYWeight), part, codeMark);
}
}
else {// 非通用件
double zt2_DesignWeight = 0;
ITKCALL(AOM_ask_value_double(design, "zt2_DesignWeight", &zt2_DesignWeight));
char* ss = getMENGE(zt2_DesignWeight, part, codeMark);
if (tc_strlen(ss) == 0) {
//log("getZYSAPMENGE3");
errMsg.append(os).append("未填写重量(zt2_DesignWeight);");
return "0";
}
//log("getZYSAPMENGE4");
return ss;
}
}
else {
char* bl_quantity = NULL;
ITKCALL(AOM_UIF_ask_value(line, "bl_quantity", &bl_quantity));
if (!bl_quantity || tc_strlen(bl_quantity) == 0) {
//log("getZYSAPMENGE5");
errMsg.append(os).append("数量未填写(bl_quantity)");
return "0";
}
//log("getZYSAPMENGE6");
double dw = stod(bl_quantity);
char buffer[16];
sprintf(buffer, "%.3f", dw);
log("MENGE2:%f==%s", dw, buffer);
return buffer;
}
}
void recurBYZZSAP(tag_t line, tag_t rev, tag_t partRev, char* groupName, map<string, tag_t>& gy_meops,
vector<tag_t>& needTCM_meops, vector<string> bomIsExist, vector<tag_t> set_meops, char* transfer, char* fa, vector<tag_t>& needTCM_meops, vector<string> bomIsExist, vector<tag_t> set_meops, char* transfer, char* fa,
vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>& list, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>& list, char* codeRemark, int unct, map<string, tag_t>& by_materials,
char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist, int level, string& errMsg) { char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist, int level, string& errMsg, string type1, vector<string> dists) {
char *line_os = NULL;
ITKCALL(AOM_ask_value_string(line, "object_string", &line_os));
log("recurBYZZSAP line:%s\n", line_os);
int line_count = 0; int line_count = 0;
tag_t *line_tags = NULL; tag_t *line_tags = NULL;
ITKCALL(BOM_line_ask_all_child_lines(line, &line_count, &line_tags)); ITKCALL(BOM_line_ask_all_child_lines(line, &line_count, &line_tags));
tag_t meop = getProcessTag(zzRev, groupName); tag_t meop = getProcessTag(rev, groupName);
if (meop != NULLTAG && !isTcm2(meop) && find(set_meops.begin(), set_meops.end(), meop) == set_meops.end()) { if (meop != NULLTAG && !isTcm2(meop) && find(set_meops.begin(), set_meops.end(), meop) == set_meops.end()) {
set_meops.push_back(meop); set_meops.push_back(meop);
} }
// 如果图纸下没有物料判断此图纸版本上的属性zt2_Diagram属性 // 如果图纸下没有物料判断此图纸版本上的属性zt2_Diagram属性
//如果此属性为是LOV值真实值为Y),则不传递此图纸,物料检查也不要报错,跳过此图纸以及子件 //如果此属性为是LOV值真实值为Y),则不传递此图纸,物料检查也不要报错,跳过此图纸以及子件
char *type = NULL; char *type = NULL;
ITKCALL(WSOM_ask_object_type2(zzRev, &type)); ITKCALL(WSOM_ask_object_type2(rev, &type));
if (tc_strcmp(type, "ZT2_Design3DRevision") == 0 && partRev == NULLTAG) { if (tc_strcmp(type, "ZT2_Design3DRevision") == 0 && partRev == NULLTAG) {
char *zt2_Diagram = NULL; char *zt2_Diagram = NULL;
ITKCALL(AOM_ask_value_string(zzRev, "zt2_Diagram", &zt2_Diagram)); ITKCALL(AOM_ask_value_string(rev, "zt2_Diagram", &zt2_Diagram));
if (tc_strcmp(zt2_Diagram, "Y") == 0 || tc_strcmp(zt2_Diagram, "") == 0) { if (tc_strcmp(zt2_Diagram, "Y") == 0 || tc_strcmp(zt2_Diagram, "") == 0) {
return; return;
} }
} }
char *zt2_Source = NULL; char *zt2_Source = NULL, *zz_os = NULL;
ITKCALL(AOM_UIF_ask_value(zzRev, "zt2_Source", &zt2_Source)); ITKCALL(AOM_ask_value_string(rev, "object_string", &zz_os));
ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source));
log("zzRev:%s==%s\n", zz_os, zt2_Source);
boolean equals = tc_strcmp(zt2_Source, "外购") == 0; boolean equals = tc_strcmp(zt2_Source, "外购") == 0;
int c_line_count = 0; int c_line_count = 0;
tag_t *c_line_tags = NULL; tag_t *c_line_tags = NULL;
@ -69,10 +139,10 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map<s
} }
else { else {
if (level == 1) { if (level == 1) {
readBopInfo1YH(meop, zzRev, false, gy_meops, needTCM_meops, groupName, now, proclist); readBopInfo1YH(meop, rev, false, gy_meops, needTCM_meops, groupName, now, proclist);
} }
else { else {
readBopInfo1YH(meop, zzRev, true, gy_meops, needTCM_meops, groupName, now, proclist); readBopInfo1YH(meop, rev, true, gy_meops, needTCM_meops, groupName, now, proclist);
} }
} }
} }
@ -89,8 +159,8 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map<s
int part_line_count = 0; int part_line_count = 0;
tag_t *part_line_tags = NULL; tag_t *part_line_tags = NULL;
ITKCALL(BOM_line_ask_all_child_lines(part_line, &part_line_count, &part_line_tags)); ITKCALL(BOM_line_ask_all_child_lines(part_line, &part_line_count, &part_line_tags));
recurBYZZSAP(part_line, zzRev, partRev, groupName, gy_meops, needTCM_meops, bomIsExist, set_meops, transfer, fa, recurBYZZSAP(part_line, rev, partRev, groupName, gy_meops, needTCM_meops, bomIsExist, set_meops, transfer, fa,
list, now, proclist, level, errMsg); list, codeRemark, unct, by_materials, now, proclist, level, errMsg, type1, dists);
ITKCALL(BOM_close_window(part_window)); ITKCALL(BOM_close_window(part_window));
} }
return; return;
@ -105,6 +175,133 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map<s
bomIsExist.push_back(zt2_MaterialNo); bomIsExist.push_back(zt2_MaterialNo);
} }
if (c_line_count == 0) { if (c_line_count == 0) {
char *item_id = NULL;
ITKCALL(AOM_ask_value_string(rev, "item_id", &item_id));
vector<string> split;
Split(item_id, "-", split);
string item_id_cut = "";
if (split.size() > 1) {
for (int i = 0; i < split.size() - 1; i++) {
if (item_id_cut.size() > 0) {
item_id_cut.append("-");
}
item_id_cut.append(split[i]);
}
}
if (find(dists.begin(), dists.end(), type) != dists.end()) {
log("框架BOM[%s]不进行原材料展开", item_id);
return;
}
if (tc_strcmp(type, "ZT2_Design3DRevision") == 0 && tc_strcmp(zt2_Source, "自制") == 0) {
tag_t comp = NULLTAG;
map<string, string> materials;
if (tc_strcmp(type1.c_str(), "E") == 0) {
comp = getClassPartDB(rev, groupName, by_materials, materials, errMsg);
}
else {
comp = getClassPart(rev, codeRemark, unct, by_materials, errMsg);
}
// 原材料展开时投料工序获取父项的工艺首工序改为获取父项的投料工序
char *sortno = NULL;
ITKCALL(AOM_ask_value_string(line, "ZT2_ClassificationNo", &sortno));
log("工序编码 =>%s", sortno);
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head;
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM* items_items =
new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM[1];
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS items;
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item;
if (partRev != NULLTAG) {
char *zt2_MaterialNo = NULL, *zt2_WBSNo = NULL, *zt2_unit = NULL;
ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo));
log("zt2_MaterialNo ==>%s", zt2_MaterialNo);
tag_t item = NULLTAG;
ITKCALL(ITEM_ask_item_of_rev(partRev, &item));
ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit));
//char* unit = getUnti(zt2_unit);
log("str = [%s] \n", zt2_unit);
ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo));
if (!zt2_WBSNo || tc_strcmp(zt2_WBSNo, "") == 0) {
head.PSPNR = "";
}
else {
head.PSPNR = zt2_WBSNo;
}
head.MATNR = zt2_MaterialNo;
head.BMEIN = zt2_unit;
}
head.STLAN = (char*)"1";
head.STLAL = (char*)"1";
head.BMENG = (char*)"1";
head.WERKS = groupName;
head.DATUV = now;
char* parnetUid;
ITK__convert_tag_to_uid(partRev, &parnetUid);
head.STKTX = parnetUid;
//inCcpMap[parnetUid] = ccpMaterialMap;
items_item.DATUV = now;
items_item.POSTP = (char*)"L";
items_item.POSNR = "0010";
if (!sortno || tc_strlen(sortno) == 0) {
char* mos = NULL;
ITKCALL(AOM_ask_value_string(rev, "object_string", &mos));
errMsg.append("自制件").append(mos).append("未投料\\n");
}
if (comp != NULLTAG) {
tag_t crev = NULLTAG;
char *os = NULL;
ITKCALL(ITEM_ask_latest_rev(comp, &crev));
ITKCALL(AOM_ask_value_string(crev, "object_string", &os));
log("原材料 =>%s", os);
//tag_t item2;
char *zt2_MaterialNo2 = NULL, *zt2_unit2 = NULL;
ITKCALL(AOM_UIF_ask_value(crev, "zt2_MaterialNo", &zt2_MaterialNo2));
if (!zt2_MaterialNo2 || tc_strlen(zt2_MaterialNo2) == 0) {
errMsg.append(line_os).append("物料号为空;");
}
//ITKCALL(ITEM_ask_item_of_rev(comp, &item2));
ITKCALL(AOM_ask_value_string(comp, "zt2_unit", &zt2_unit2));
items_item.IDNRK = zt2_MaterialNo2;
//char* unit22 = getUnti(zt2_unit2);
items_item.MEINS = zt2_unit2;
char *menge = NULL;
menge = (char*)MEM_alloc((16 + 1) * sizeof(char));
if (tc_strcmp(type1.c_str(), "E") == 0) {
char *zt2_MaterialMark = NULL;
ITKCALL(AOM_UIF_ask_value(rev, "zt2_MaterialMark", &zt2_MaterialMark));
if (materials.count(zt2_MaterialMark) > 0) {
tc_strcpy(menge, getZYSAPMENGE2(materials[zt2_MaterialMark], rev, line, true, errMsg));
}
else {
tc_strcpy(menge, getSAPMENGE(rev, crev, line, true, codeRemark, errMsg));
}
}
else {
tc_strcpy(menge, getSAPMENGE(rev, crev, line, true, codeRemark, errMsg));
}
items_item.MENGE = menge;
}
else {
char* mos = NULL;
ITKCALL(AOM_ask_value_string(rev, "object_string", &mos));
errMsg.append(mos).append("未能匹配到对应的原材料\\n");
items_item.IDNRK = "";
items_item.MEINS = "";
items_item.MENGE = "";
}
items_item.SORTF = sortno;
items_item.POTX1 = "";
items_items[0] = items_item;
items.ITEM = items_items;
items.__sizeITEM = 1;/**/
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST list1;
list1.HEAD = head;
//log("list1.HEAD %s ", list1.HEAD.BMEIN);
list1.ITEMS = items;
log("list %zd ", list.size());
list.push_back(list1);
}
return; return;
} }
char *os = NULL; char *os = NULL;
@ -138,8 +335,11 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map<s
string buff; string buff;
_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item;
tag_t c_line_tag = c_line_tags[i], rev2; tag_t c_line_tag = c_line_tags[i], rev2;
char *c_line_os = NULL;
ITKCALL(AOM_ask_value_string(c_line_tag, "object_string", &c_line_os));
log("c_line_tag:%s\n", c_line_os);
ITKCALL(AOM_ask_value_tag(c_line_tag, "bl_line_object", &rev2)); ITKCALL(AOM_ask_value_tag(c_line_tag, "bl_line_object", &rev2));
tag_t partRev2 = getBOMPart(rev2, groupName); tag_t partRev2 = getBOMPart(c_line_tag, groupName);
int c_line_count2 = 0; int c_line_count2 = 0;
tag_t *c_line_tags2 = NULL; tag_t *c_line_tags2 = NULL;
ITKCALL(BOM_line_ask_all_child_lines(c_line_tag, &c_line_count2, &c_line_tags2)); ITKCALL(BOM_line_ask_all_child_lines(c_line_tag, &c_line_count2, &c_line_tags2));
@ -184,9 +384,9 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map<s
} }
} }
char *bl_sequence_no = NULL, *sortno = NULL, *ZT2_Remark = NULL, *zt2_SapState = NULL; char *bl_sequence_no = NULL, *c_sortno = NULL, *ZT2_Remark = NULL, *zt2_SapState = NULL;
ITKCALL(AOM_UIF_ask_value(c_line_tag, "bl_sequence_no", &bl_sequence_no)); ITKCALL(AOM_UIF_ask_value(c_line_tag, "bl_sequence_no", &bl_sequence_no));
ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_ClassificationNo", &sortno)); ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_ClassificationNo", &c_sortno));
ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_Remark", &ZT2_Remark)); ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_Remark", &ZT2_Remark));
ITKCALL(AOM_UIF_ask_value(rev2, "zt2_SapState", &zt2_SapState)); ITKCALL(AOM_UIF_ask_value(rev2, "zt2_SapState", &zt2_SapState));
@ -197,8 +397,8 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map<s
items_item.POSTP = (char*)"L"; items_item.POSTP = (char*)"L";
items_item.POSNR = bl_sequence_no; items_item.POSNR = bl_sequence_no;
items_item.MENGE = menge; items_item.MENGE = menge;
items_item.SORTF = sortno; items_item.SORTF = c_sortno;
if (!sortno || tc_strlen(sortno) == 0) { if (!c_sortno || tc_strlen(c_sortno) == 0) {
buff.append("BOM行缺少投料信息;"); buff.append("BOM行缺少投料信息;");
} }
items_item.POTX1 = ZT2_Remark; items_item.POTX1 = ZT2_Remark;
@ -216,7 +416,7 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map<s
continue; continue;
} }
recurBYZZSAP(c_line_tag, rev2, partRev2, groupName, gy_meops, needTCM_meops, bomIsExist, set_meops, transfer, fa, recurBYZZSAP(c_line_tag, rev2, partRev2, groupName, gy_meops, needTCM_meops, bomIsExist, set_meops, transfer, fa,
list, now, proclist, level, errMsg); list, codeRemark, unct, by_materials, now, proclist, level, errMsg, type1, dists);
} }
items.ITEM = items_items; items.ITEM = items_items;
items.__sizeITEM = c_line_count; items.__sizeITEM = c_line_count;
@ -296,10 +496,49 @@ char* getZYCCPSortNo(tag_t comp) {
return ""; return "";
} }
void SAPZZNewOp(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs, void SAPZZNewOp(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs, char* now, string& errMsgBuf,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type) { char*code, char* transfer, char* userName, char* type, vector<string> dists, char* projectName) {
log("************** SAPZZNewOp **************"); log("************** SAPZZNewOp **************");
int pref_cnt = 0;
char **pref = NULL;
string codeRemark = "ICM0801";
vector<string> matr;
ITKCALL(PREF_ask_char_values("CHINT_ORG_TechnologyClassification", &pref_cnt, &pref));
for (int i = 0; i < pref_cnt; i++) {
vector<string> v1, v2;
Split(pref[i], ":", v1);
if (tc_strcmp(v1[0].c_str(), groupName) != 0) {
continue;
}
Split(v1[1], ";", v2);
if (v2.size() == 4) {
codeRemark = v2[2];
Split(v2[2], "\\", matr);
}
else if (v2.size() > 2) {
codeRemark = v2[2];
}
}
pref_cnt = 0;
char **urls = NULL;
ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls));
if (pref_cnt < 3) {
errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n");
//
string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' ";
char selectRxfs[800];
string timel;
sprintf(selectRxfs, updateSum.c_str(), code);
log("selectRecord2 ===> %s\n", selectRxfs);
ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit");
//错误数据已发送飞书提醒
sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName);
return;
}
int unct = getIcsId((char*)codeRemark.c_str(), "材料标记");
map<tag_t, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>> mapList; map<tag_t, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>> mapList;
string sendMsg; string sendMsg;
map<string, vector<string>> inCcpMap;//记录单元对应的产成品物料编码 map<string, vector<string>> inCcpMap;//记录单元对应的产成品物料编码
@ -345,7 +584,7 @@ void SAPZZNewOp(vector<tag_t> ccpVector, char* projectNo, char* groupName, char*
inCcpMap[revUid] = ccpMaterialMap; inCcpMap[revUid] = ccpMaterialMap;
recurBYZZSAP(line, zzRev, partRev, groupName, gy_meops, needTCM_meops, bomIsExist, set_meops, transfer, type, recurBYZZSAP(line, zzRev, partRev, groupName, gy_meops, needTCM_meops, bomIsExist, set_meops, transfer, type,
list, now, proclist, 1, errMsg); list, (char*)codeRemark.c_str(), unct, by_materials, now, proclist, 1, errMsg, type, dists);
//log("errMsg =>%s", errMsg.c_str()); //log("errMsg =>%s", errMsg.c_str());
string logmsg = "errMsg =>"; string logmsg = "errMsg =>";
//log2(logmsg.append(errMsg)); //log2(logmsg.append(errMsg));
@ -358,7 +597,7 @@ void SAPZZNewOp(vector<tag_t> ccpVector, char* projectNo, char* groupName, char*
} }
if (proclist.size() > 0) { if (proclist.size() > 0) {
logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist;
sendProcess(proclist, sendMsg);//proclists.push_back(proclist);//sendProcess(proclist); sendProcess(proclist, sendMsg, urls[1]);//proclists.push_back(proclist);//sendProcess(proclist);
} }
ITKCALL(BOM_close_window(window)); ITKCALL(BOM_close_window(window));
} }
@ -366,7 +605,167 @@ void SAPZZNewOp(vector<tag_t> ccpVector, char* projectNo, char* groupName, char*
//传递BOM //传递BOM
//logBomMsg(list); //logBomMsg(list);
//sendBom(list, sendMsg); //sendBom(list, sendMsg);
startSplitSend(groupName, mapList, code, wbs, inCcpMap); startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]);
//sendBom(list);
}
else {
string time1 = getPlmTime(code);
string updateSum = "update CHINT_BOM_TO_SAP_SUM set datastatus = '没有合法BOM',organizationaltime = '%s',taskstauts = '组织完成',PLMFINISHTIME = SYSDATE where code = '%s' ";
char selectRxfs[800];
string timel;
sprintf(selectRxfs, updateSum.c_str(), time1.c_str(), code);
log("selectRecord2 ===> %s\n", selectRxfs);
ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit");
}
}
void SAPPartZYOp2(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type, char* projectName) {
log("************** SAPPartZYOp2 **************");
int pref_cnt = 0;
char **pref = NULL;
string codeRemark = "ICM0801";
vector<string> matr;
ITKCALL(PREF_ask_char_values("CHINT_ORG_TechnologyClassification", &pref_cnt, &pref));
for (int i = 0; i < pref_cnt; i++) {
vector<string> v1, v2;
Split(pref[i], ":", v1);
if (tc_strcmp(v1[0].c_str(), groupName) != 0) {
continue;
}
Split(v1[1], ";", v2);
if (v2.size() == 4) {
codeRemark = v2[2];
Split(v2[2], "\\", matr);
}
else if (v2.size() > 2) {
codeRemark = v2[2];
}
}
pref_cnt = 0;
char **urls = NULL;
ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls));
if (pref_cnt < 3) {
errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n");
//
string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' ";
char selectRxfs[800];
string timel;
sprintf(selectRxfs, updateSum.c_str(), code);
log("selectRecord2 ===> %s\n", selectRxfs);
ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit");
//错误数据已发送飞书提醒
sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName);
return;
}
map<tag_t, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>> mapList;
map<string, vector<string>> inCcpMap;//记录单元对应的产成品物料编码
for (int len = 0; len < ccpVector.size(); len++) {
tag_t rev = ccpVector[len], *factoryNos;
char* revUid;
ITK__convert_tag_to_uid(rev, &revUid);
log("产成品UID:%s", revUid);
char *type = NULL;
ITKCALL(WSOM_ask_object_type2(rev, &type));
if (tc_strcmp(type, "ZT2_Design3DRevision") != 0 && tc_strcmp(type, "Part Revision") != 0) {
continue;
}
int num = 0;
ITKCALL(AOM_ask_value_tags(rev, "ZT2_FactoryNumber", &num, &factoryNos));
tag_t designRev = NULLTAG;
if (num > 0) {
int n_references = 0;
int* levels = 0;
tag_t* references_tag;
char** relation_type_name = NULL;
//通过出厂编号查找到图纸
ITKCALL(WSOM_where_referenced(factoryNos[0], 1, &n_references, &levels, &references_tag, &relation_type_name));
for (int i = 0; i < n_references; i++) {
if (tc_strcmp(relation_type_name[i], "ZT2_FactoryNumber") == 0) {
char *type2 = NULL;
ITKCALL(WSOM_ask_object_type2(references_tag[i], &type2));
if (tc_strcmp(type2, "ZT2_Design3DRevision") == 0) {
designRev = references_tag[i];
break;
}
}
}
}
if (designRev == NULLTAG) {
designRev = rev;
}
tag_t ebom_window = NULLTAG, line = NULLTAG;
ITKCALL(BOM_create_window(&ebom_window));
ITKCALL(BOM_set_window_top_line(ebom_window, NULL, designRev, NULLTAG, &line));
char *ccpMaterialNo = NULL;
ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialNo", &ccpMaterialNo));
int unct = getIcsId((char*)codeRemark.c_str(), "材料标记");
vector <_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list;
vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist;
map<string, tag_t> gy_meops; //避免重复工艺路线
vector<tag_t> needTCM_meops;//没用上
vector<string> bomIsExist;
map<string, tag_t> by_materials;
vector<string> ccpMaterialMap;
ccpMaterialMap.push_back(ccpMaterialNo);
inCcpMap[revUid] = ccpMaterialMap;
string errMsg = "";
recurZYGGSAPNoProc(designRev, rev, groupName, line, gy_meops, needTCM_meops, now, proclist, bomIsExist,
list, (char*)codeRemark.c_str(), unct, by_materials, false, errMsg, inCcpMap, ccpMaterialMap, matr);
//log("errMsg =>%s", errMsg.c_str());
string logmsg = "errMsg =>";
//log2(logmsg.append(errMsg));
logmsg.append(errMsg);
printf("%s\n", logmsg.c_str());
info(logmsg.c_str());
if (errMsg.length() > 0) {
errMsgBuf.append("BOM异常:\\n").append(errMsg);
//
string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = '数据检查有问题' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' ";
char selectRxfs[800];
string timel;
sprintf(selectRxfs, updateSum.c_str(), code);
log("selectRecord2 ===> %s\n", selectRxfs);
ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit");
//错误数据已发送飞书提醒
sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName);
return;
}
char *zt2_BOMScheme = NULL;
ITKCALL(AOM_UIF_ask_value(rev, "zt2_BOMScheme", &zt2_BOMScheme));
if (list.size() > 0 && strcmp(zt2_BOMScheme, "汇总") == 0) {
char* zt2_Quantity;
ITKCALL(AOM_ask_value_string(rev, "zt2_Quantity", &zt2_Quantity));
if (strstr(zt2_Quantity, "") != 0) {
int quantity = atoi(zt2_Quantity);
if (quantity == 0) {
quantity = 1;
}
int size = list.size();
char* s = new char[10];
_itoa(quantity, s, 10);
list[size - 1].HEAD.BMENG = s;
//head.BMENG = (char*)to_string(quantity).c_str();
}
}
if (list.size() > 0) {
//logBomMsg(list);
mapList[rev] = list;
}
ITKCALL(BOM_close_window(ebom_window));
}
if (mapList.size() > 0) {
//传递BOM
//logBomMsg(list);
//sendBom(list, sendMsg);
startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]);
//sendBom(list); //sendBom(list);
} }
else { else {
@ -397,6 +796,24 @@ void SAPZZNewOp(vector<tag_t> ccpVector, char* projectNo, char* groupName, char*
void getKTBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs, void getKTBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName) { char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName) {
log("************** getKTBom **************"); log("************** getKTBom **************");
int pref_cnt = 0;
char **urls = NULL;
ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls));
if (pref_cnt < 3) {
errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n");
//
string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' ";
char selectRxfs[800];
string timel;
sprintf(selectRxfs, updateSum.c_str(), code);
log("selectRecord2 ===> %s\n", selectRxfs);
ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit");
//错误数据已发送飞书提醒
sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName);
return;
}
//记录是否有重复的出厂编号 //记录是否有重复的出厂编号
vector<tag_t> isCheck_FactoryNos; vector<tag_t> isCheck_FactoryNos;
//记录产成品 对应的 电气BOM集合 //记录产成品 对应的 电气BOM集合
@ -478,7 +895,7 @@ void getKTBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
//传递出厂编号的记录日志信息 //传递出厂编号的记录日志信息
log("出厂编号数量 num :%zd\n", list_Factorys.size()); log("出厂编号数量 num :%zd\n", list_Factorys.size());
logCcbh(list_Factorys); logCcbh(list_Factorys);
sendFactoryNo(list_Factorys); sendFactoryNo(list_Factorys, urls[0]);
vector <_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list; vector <_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list;
vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist;
@ -631,7 +1048,7 @@ void getKTBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
} }
if (proclist.size() > 0) { if (proclist.size() > 0) {
logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist;
sendProcess(proclist, sendMsg);//proclists.push_back(proclist);//sendProcess(proclist); sendProcess(proclist, sendMsg, urls[1]);//proclists.push_back(proclist);//sendProcess(proclist);
} }
} }
} }
@ -639,7 +1056,7 @@ void getKTBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
//传递BOM //传递BOM
//logBomMsg(list); //logBomMsg(list);
//sendBom(list, sendMsg); //sendBom(list, sendMsg);
startSplitSend(groupName, mapList, code, wbs, inCcpMap); startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]);
//sendBom(list); //sendBom(list);
} }
else { else {

@ -26,15 +26,26 @@ boolean isTcm2(tag_t mantr);
void getFactoryNoList(char* projectNo, char* groupName, char* wbs, void getFactoryNoList(char* projectNo, char* groupName, char* wbs,
tag_t* factoryNos, int num, tag_t ccp, vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM>& list); tag_t* factoryNos, int num, tag_t ccp, vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM>& list);
void logCcbh(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys); void logCcbh(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys);
void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys); void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys, char* url);
void readBopInfo1YH(tag_t rev, tag_t partRev, boolean flag, void readBopInfo1YH(tag_t rev, tag_t partRev, boolean flag,
map<string, tag_t>& gy_meops, vector<tag_t>& needTCM_meops, map<string, tag_t>& gy_meops, vector<tag_t>& needTCM_meops,
char* groupName, char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist); char* groupName, char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist);
char* getUnti(char* unti); char* getUnti(char* unti);
void startSplitSend(char*groupId, void startSplitSend(char*groupId,
map<tag_t, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>> mapList, map<tag_t, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>> mapList,
char *code, char *wbsNo, map<string, vector<string>> inCcpMap); char *code, char *wbsNo, map<string, vector<string>> inCcpMap, char* url);
string getPlmTime(char *code); string getPlmTime(char *code);
void logProcessMsg(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist); void logProcessMsg(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist);
void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist, string& sendMsg); void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist, string& sendMsg, char* url);
void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* projectName); void sendNotice(char *code, string errMsg, char *wbsNo, char *groupName, char *userName, char* projectName);
void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, map<string, tag_t>& gy_meops, vector<tag_t>& needTCM_meops,
char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist, vector<string>& bomIsExist,
vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>& list, char* codeRemark, int unct, map<string, tag_t>& by_materials,
boolean isZT, string& errMsg, map<string, vector<string>>& inCcpMap, vector<string> ccpMaterialMap, vector<string> matr);
int getIcsId(char* codeRemark, char* property);
tag_t getClassPartDB(tag_t rev, char* groupName, map<string, tag_t>& by_materials, map<string, string>& materials, string& errMsg);
tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map<string, tag_t>& by_materials, string& errMsg);
char* getZYSAPMENGE2(string lylStr, tag_t design, tag_t line, boolean isBottom, string& errMsg);
string getICSProperty(tag_t comp, char* codeRemark, char* prop);
char* getZYCCPSortNo(tag_t comp);

@ -19,10 +19,24 @@ using namespace std;
#define ERROR_QRY_NOT_FOUND (EMH_USER_error_base + 120) #define ERROR_QRY_NOT_FOUND (EMH_USER_error_base + 120)
struct FlowBean {
vector<tag_t> flowList;
tag_t flow_split = NULLTAG;
tag_t flow_combine = NULLTAG;
tag_t flow_end = NULLTAG;
char* BEZFL; // ²Î¿¼Ë³Ðò
string PLNFL = ""; // ÐòÁÐ
boolean isMain = true;
boolean isOther = false;
vector<tag_t> flow_combine_list;
};
//int readBomMsg(vector<tag_t> uidList,char * groupName,char* groupUid, char*code, char*userName); //int readBomMsg(vector<tag_t> uidList,char * groupName,char* groupUid, char*code, char*userName);
void getCcpAndBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs, void getCcpAndBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName); char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName);
void Split(string strArg, string spliter, vector<string>& ans); void Split(string strArg, string spliter, vector<string>& ans);
char* getGXNR(tag_t gxLine);
FlowBean getClone(FlowBean oldBean);
void getSort(vector<FlowBean>& flowBeans);
tag_t getSAPPart(tag_t rev, char* groupName); tag_t getSAPPart(tag_t rev, char* groupName);
tag_t getZYDesign(tag_t rev); tag_t getZYDesign(tag_t rev);
@ -35,11 +49,17 @@ void SAPZYGG2(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* w
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName); char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName);
void SAPZZNewOp(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs, void SAPZZNewOp(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type); char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type, vector<string> dists, char* projectName);
void getKTBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs, void getKTBom(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName); char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName);
void BomSapWh(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName);
void SAPPartZYOp2(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs,
char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type, char* projectName);
typedef struct { typedef struct {
string ID; string ID;
}DFL_ID; }DFL_ID;

@ -12,6 +12,7 @@ A commercial use license is available from Genivia Inc., contact@genivia.com
*/ */
#include "soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.h" #include "soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.h"
#include "util.h"
SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy::SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy() : soap(SOAP_IO_DEFAULT) SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy::SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy() : soap(SOAP_IO_DEFAULT)
{ {
@ -169,7 +170,10 @@ int SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy::send_SIO_USCOREBOM_USCOREPLM
if (soap_endpoint_url != NULL) if (soap_endpoint_url != NULL)
soap_endpoint = soap_endpoint_url; soap_endpoint = soap_endpoint_url;
if (soap_endpoint == NULL) if (soap_endpoint == NULL)
soap_endpoint = "http://192.168.0.184:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; //soap_endpoint = "http://192.168.0.184:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm";
soap_endpoint = "http://gfpot01:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn:chintelectric.com%3Axi%3Aplm";
log("sendBom==>%s", soap_endpoint);
if (soap_action == NULL) if (soap_action == NULL)
soap_action = "http://sap.com/xi/WebService/soap1.1"; soap_action = "http://sap.com/xi/WebService/soap1.1";
soap_tmp___ns1__SIO_USCOREBOM_USCOREPLM_USCOREASYN.ns1__MT_USCOREBOM_USCORES4_USCOREREQ = ns1__MT_USCOREBOM_USCORES4_USCOREREQ; soap_tmp___ns1__SIO_USCOREBOM_USCOREPLM_USCOREASYN.ns1__MT_USCOREBOM_USCORES4_USCOREREQ = ns1__MT_USCOREBOM_USCORES4_USCOREREQ;

@ -12,6 +12,7 @@ A commercial use license is available from Genivia Inc., contact@genivia.com
*/ */
#include "soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.h" #include "soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.h"
#include "util.h"
SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy() : soap(SOAP_IO_DEFAULT) SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy() : soap(SOAP_IO_DEFAULT)
{ SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy_init(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT); { SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy_init(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT);
@ -148,7 +149,8 @@ int SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::sen
if (soap_endpoint_url != NULL) if (soap_endpoint_url != NULL)
soap_endpoint = soap_endpoint_url; soap_endpoint = soap_endpoint_url;
if (soap_endpoint == NULL) if (soap_endpoint == NULL)
soap_endpoint = "http://10.10.101.219:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_FACTORY_NUMBER_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm https://gfpoapp:50101/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_FACTORY_NUMBER_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; soap_endpoint = "http://192.168.0.184:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_FACTORY_NUMBER_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm https://gfpoapp:50101/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_FACTORY_NUMBER_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm";
log("sendFactoryNo==>%s", soap_endpoint);
if (soap_action == NULL) if (soap_action == NULL)
soap_action = "http://sap.com/xi/WebService/soap1.1"; soap_action = "http://sap.com/xi/WebService/soap1.1";
soap_tmp___ns1__SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYN.ns1__MT_USCOREFACTORY_USCORENUMBER_USCOREREQ = ns1__MT_USCOREFACTORY_USCORENUMBER_USCOREREQ; soap_tmp___ns1__SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYN.ns1__MT_USCOREFACTORY_USCORENUMBER_USCOREREQ = ns1__MT_USCOREFACTORY_USCORENUMBER_USCOREREQ;

@ -12,6 +12,7 @@ A commercial use license is available from Genivia Inc., contact@genivia.com
*/ */
#include "soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.h" #include "soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.h"
#include "util.h"
SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy() : soap(SOAP_IO_DEFAULT) SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy() : soap(SOAP_IO_DEFAULT)
{ SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy_init(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT); { SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy_init(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT);
@ -147,7 +148,8 @@ int SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::send_SI_USC
if (soap_endpoint_url != NULL) if (soap_endpoint_url != NULL)
soap_endpoint = soap_endpoint_url; soap_endpoint = soap_endpoint_url;
if (soap_endpoint == NULL) if (soap_endpoint == NULL)
soap_endpoint = "http://10.10.101.219:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_PROCESSROUTE_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; soap_endpoint = "http://192.168.0.184:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_PROCESSROUTE_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm";
log("sendProcess==>%s", soap_endpoint);
if (soap_action == NULL) if (soap_action == NULL)
soap_action = "http://sap.com/xi/WebService/soap1.1"; soap_action = "http://sap.com/xi/WebService/soap1.1";
soap_tmp___ns1__SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYN.ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ = ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ; soap_tmp___ns1__SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYN.ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ = ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ;

@ -1,8 +1,8 @@
生成启动时间为 2024/4/16 16:26:14 生成启动时间为 2024/7/12 10:30:09
1>项目“Z:\TC_install\ZhengTai\c\GetBOMProp\DFL_BOM_WL_TOERP\DFL_BOM_WL_TOERP.vcxproj”在节点 2 上(Build 个目标)。 1>项目“Z:\TC_install\ZhengTai\c\GetBOMProp\DFL_BOM_WL_TOERP\DFL_BOM_WL_TOERP.vcxproj”在节点 2 上(Build 个目标)。
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(392,5): warning MSB8028: The intermediate directory (x64\Release\) contains files shared from another project (DFL_BOM_WL_TOERP1.vcxproj, DFL_BOM_WL_TOERP.vcxproj, GetBomMessage.vcxproj, GetBOMProp.vcxproj, GetBOMProp2.vcxproj). This can lead to incorrect clean and rebuild behavior. 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(392,5): warning MSB8028: The intermediate directory (x64\Release\) contains files shared from another project (DFL_BOM_WL_TOERP1.vcxproj, DFL_BOM_WL_TOERP.vcxproj, GetBomMessage.vcxproj, GetBOMProp.vcxproj, GetBOMProp2.vcxproj). This can lead to incorrect clean and rebuild behavior.
1>ClCompile: 1>ClCompile:
D:\VS2015\VC\bin\x86_amd64\CL.exe /c /IZ:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\build\..\lib\native\include\ /IZ:\TC_install\ZhengTai\c\sdplog\include /I"Z:\TC_install\ZhengTai\c\libcurl-vc15-x64-release-dll-ipv6-sspi-schannel\include" /IZ:\TC_install\YSR\c\clib\OCI\include /IZ:\TC_install\jingdiao\c\tclib\include /IZ:\TC_install\jingdiao\c\tclib\include_cpp /IZ:\TC_install\ZhengTai\c\libxl\include /Zi /nologo /W3 /WX- /sdl /O2 /Oi /GL /D WIN32 /D NDEBUG /D _CONSOLE /D IPLIB=none /D _UNICODE /D UNICODE /Gm- /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"x64\Release\\" /Fd"x64\Release\vc140.pdb" /Gd /TP /errorReport:prompt /D _CRT_SECURE_NO_WARNINGS BOMSendSap.cpp GetBOMProp.cpp SAPZYGG2.cxx D:\VS2015\VC\bin\x86_amd64\CL.exe /c /IZ:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\build\..\lib\native\include\ /IZ:\TC_install\ZhengTai\c\sdplog\include /I"Z:\TC_install\ZhengTai\c\libcurl-vc15-x64-release-dll-ipv6-sspi-schannel\include" /IZ:\TC_install\YSR\c\clib\OCI\include /IZ:\TC_install\jingdiao\c\tclib\include /IZ:\TC_install\jingdiao\c\tclib\include_cpp /IZ:\TC_install\ZhengTai\c\libxl\include /Zi /nologo /W3 /WX- /sdl /O2 /Oi /GL /D WIN32 /D NDEBUG /D _CONSOLE /D IPLIB=none /D _UNICODE /D UNICODE /Gm- /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"x64\Release\\" /Fd"x64\Release\vc140.pdb" /Gd /TP /errorReport:prompt /D _CRT_SECURE_NO_WARNINGS BOMSendSap.cpp
BOMSendSap.cpp BOMSendSap.cpp
1>D:\VS2015\VC\include\xlocale(341): warning C4530: 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc 1>D:\VS2015\VC\include\xlocale(341): warning C4530: 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc
1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(806): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(806): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
@ -41,199 +41,60 @@
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\epm/EPMTask.hxx(1086): warning C4251: “Teamcenter::EPMTask::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::EPMTask”的客户端使用 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\epm/EPMTask.hxx(1086): warning C4251: “Teamcenter::EPMTask::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::EPMTask”的客户端使用
1>Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\lib\native\include\spdlog/fmt/bundled/core.h(327): warning C4566: 由通用字符名称“\u00B5”表示的字符不能在当前代码页(936)中表示出来 1>Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\lib\native\include\spdlog/fmt/bundled/core.h(327): warning C4566: 由通用字符名称“\u00B5”表示的字符不能在当前代码页(936)中表示出来
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/Item.hxx(347): warning C4251: “Teamcenter::Item::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::Item”的客户端使用 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/Item.hxx(347): warning C4251: “Teamcenter::Item::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::Item”的客户端使用
1>BOMSendSap.cpp(151): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(142): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(194): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(185): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(205): warning C4244: “初始化”: 从“__int64”转换到“int”可能丢失数据 1>BOMSendSap.cpp(196): warning C4244: “初始化”: 从“__int64”转换到“int”可能丢失数据
1>BOMSendSap.cpp(237): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(228): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(286): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(277): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(320): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(311): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(335): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(326): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(336): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(327): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(337): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(328): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(389): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. 1>BOMSendSap.cpp(380): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 参见“WSOM_where_referenced”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 参见“WSOM_where_referenced”的声明
1>BOMSendSap.cpp(479): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(470): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(568): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(559): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(622): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(613): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(596): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(587): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(597): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(588): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(598): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(589): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(599): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(590): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(600): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(591): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(601): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(592): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(724): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(715): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(676): warning C4101: “itemID”: 未引用的局部变量 1>BOMSendSap.cpp(667): warning C4101: “itemID”: 未引用的局部变量
1>BOMSendSap.cpp(979): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(745): warning C4101: “zt2_Diagram”: 未引用的局部变量
1>BOMSendSap.cpp(926): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(807): warning C4101: “prop3”: 未引用的局部变量
1>BOMSendSap.cpp(807): warning C4101: “prop0”: 未引用的局部变量
1>BOMSendSap.cpp(970): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(917): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(938): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. 1>BOMSendSap.cpp(929): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 参见“WSOM_where_referenced”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 参见“WSOM_where_referenced”的声明
1>BOMSendSap.cpp(1162): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(1153): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(1176): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据 1>BOMSendSap.cpp(1167): warning C4267: “=”: 从“size_t”转换到“int”可能丢失数据
1>BOMSendSap.cpp(1075): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(1066): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(1661): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. 1>BOMSendSap.cpp(1691): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 参见“WSOM_where_referenced”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 参见“WSOM_where_referenced”的声明
1>BOMSendSap.cpp(1682): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(1712): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>BOMSendSap.cpp(1683): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. 1>BOMSendSap.cpp(1713): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明 Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>D:\VS2015\VC\include\exception(361): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc
GetBOMProp.cpp
1>D:\VS2015\VC\include\xlocale(341): warning C4530: 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc
1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(806): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(5417): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\base_utils/IFail.hxx(114): warning C4251: “IFail::m_message”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“IFail”的客户端使用
1>Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\lib\native\include\spdlog/fmt/bundled/core.h(327): warning C4566: 由通用字符名称“\u00B5”表示的字符不能在当前代码页(936)中表示出来
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RootObject.hxx(90): warning C4251: “Teamcenter::RootObject::m_typeName”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::RootObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RootObject.hxx(95): warning C4251: “Teamcenter::RootObject::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::RootObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/OperationInput.hxx(414): warning C4251: “Teamcenter::OperationInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::OperationInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BulkInput.hxx(120): warning C4251: “Teamcenter::BulkInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::BulkInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BulkData.hxx(123): warning C4251: “Teamcenter::BulkData::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::BulkData”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/DeepCopyData.hxx(93): warning C4251: “Teamcenter::DeepCopyData::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::DeepCopyData”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/CreateInput.hxx(140): warning C4251: “Teamcenter::CreateInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::CreateInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/SaveAsInput.hxx(93): warning C4251: “Teamcenter::SaveAsInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::SaveAsInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BusinessObject.hxx(666): warning C4251: “Teamcenter::BusinessObject::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::BusinessObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\extensionframework/OperationDispatcher.hxx(439): warning C4251: “Teamcenter::OperationDispatcher::m_boName”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::OperationDispatcher”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/POM_object.hxx(253): warning C4251: “Teamcenter::POM_object::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::POM_object”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore\imantype.hxx(225): warning C4251: “Teamcenter::ImanType::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::ImanType”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(55): warning C4251: “Teamcenter::FeatureKeyCheck::featureKey”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::FeatureKeyCheck”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(74): warning C4251: “Teamcenter::FeatureKeyCheckAND::featureKeyChecks”: class“std::vector<Teamcenter::FeatureKeyCheck *,std::allocator<_Ty>>”需要有 dll 接口由 class“Teamcenter::FeatureKeyCheckAND”的客户端使用
with
[
_Ty=Teamcenter::FeatureKeyCheck *
]
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(95): warning C4251: “Teamcenter::FeatureKeyCheckOR::featureKeyChecks”: class“std::vector<Teamcenter::FeatureKeyCheck *,std::allocator<_Ty>>”需要有 dll 接口由 class“Teamcenter::FeatureKeyCheckOR”的客户端使用
with
[
_Ty=Teamcenter::FeatureKeyCheck *
]
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/ReviseInput.hxx(93): warning C4251: “Teamcenter::ReviseInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::ReviseInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RuntimeBusinessObject.hxx(93): warning C4251: “Teamcenter::RuntimeBusinessObject::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::RuntimeBusinessObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tc/Fnd0BaseProvider.hxx(103): warning C4251: “Teamcenter::Fnd0BaseProvider::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::Fnd0BaseProvider”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/POM_application_object.hxx(149): warning C4251: “Teamcenter::POM_application_object::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::POM_application_object”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/WorkspaceObject.hxx(567): warning C4251: “Teamcenter::WorkspaceObject::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::WorkspaceObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/ItemRevision.hxx(518): warning C4251: “Teamcenter::ItemRevision::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::ItemRevision”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\epm/EPMTask.hxx(1086): warning C4251: “Teamcenter::EPMTask::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::EPMTask”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/Item.hxx(347): warning C4251: “Teamcenter::Item::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::Item”的客户端使用
1>GetBOMProp.cpp(85): warning C4101: “revUid”: 未引用的局部变量
1>GetBOMProp.cpp(98): warning C4101: “ccp”: 未引用的局部变量
1>D:\VS2015\VC\include\limits(214): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc
SAPZYGG2.cxx
1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(806): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(5417): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>D:\VS2015\VC\include\xlocale(341): warning C4530: 使用了 C++ 异常处理程序,但未启用展开语义。请指定 /EHsc
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RootObject.hxx(90): warning C4251: “Teamcenter::RootObject::m_typeName”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::RootObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RootObject.hxx(95): warning C4251: “Teamcenter::RootObject::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::RootObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/OperationInput.hxx(414): warning C4251: “Teamcenter::OperationInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::OperationInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BulkInput.hxx(120): warning C4251: “Teamcenter::BulkInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::BulkInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BulkData.hxx(123): warning C4251: “Teamcenter::BulkData::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::BulkData”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/DeepCopyData.hxx(93): warning C4251: “Teamcenter::DeepCopyData::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::DeepCopyData”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/CreateInput.hxx(140): warning C4251: “Teamcenter::CreateInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::CreateInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/SaveAsInput.hxx(93): warning C4251: “Teamcenter::SaveAsInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::SaveAsInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BusinessObject.hxx(666): warning C4251: “Teamcenter::BusinessObject::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::BusinessObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\extensionframework/OperationDispatcher.hxx(439): warning C4251: “Teamcenter::OperationDispatcher::m_boName”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::OperationDispatcher”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/POM_object.hxx(253): warning C4251: “Teamcenter::POM_object::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::POM_object”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore\imantype.hxx(225): warning C4251: “Teamcenter::ImanType::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::ImanType”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\base_utils/IFail.hxx(114): warning C4251: “IFail::m_message”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“IFail”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(55): warning C4251: “Teamcenter::FeatureKeyCheck::featureKey”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::FeatureKeyCheck”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(74): warning C4251: “Teamcenter::FeatureKeyCheckAND::featureKeyChecks”: class“std::vector<Teamcenter::FeatureKeyCheck *,std::allocator<_Ty>>”需要有 dll 接口由 class“Teamcenter::FeatureKeyCheckAND”的客户端使用
with
[
_Ty=Teamcenter::FeatureKeyCheck *
]
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(95): warning C4251: “Teamcenter::FeatureKeyCheckOR::featureKeyChecks”: class“std::vector<Teamcenter::FeatureKeyCheck *,std::allocator<_Ty>>”需要有 dll 接口由 class“Teamcenter::FeatureKeyCheckOR”的客户端使用
with
[
_Ty=Teamcenter::FeatureKeyCheck *
]
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/ReviseInput.hxx(93): warning C4251: “Teamcenter::ReviseInput::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::ReviseInput”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RuntimeBusinessObject.hxx(93): warning C4251: “Teamcenter::RuntimeBusinessObject::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::RuntimeBusinessObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tc/Fnd0BaseProvider.hxx(103): warning C4251: “Teamcenter::Fnd0BaseProvider::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::Fnd0BaseProvider”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/POM_application_object.hxx(149): warning C4251: “Teamcenter::POM_application_object::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::POM_application_object”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/WorkspaceObject.hxx(567): warning C4251: “Teamcenter::WorkspaceObject::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::WorkspaceObject”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/ItemRevision.hxx(518): warning C4251: “Teamcenter::ItemRevision::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::ItemRevision”的客户端使用
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\epm/EPMTask.hxx(1086): warning C4251: “Teamcenter::EPMTask::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::EPMTask”的客户端使用
1>Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\lib\native\include\spdlog/fmt/bundled/core.h(327): warning C4566: 由通用字符名称“\u00B5”表示的字符不能在当前代码页(936)中表示出来
1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/Item.hxx(347): warning C4251: “Teamcenter::Item::name”: class“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”需要有 dll 接口由 class“Teamcenter::Item”的客户端使用
1>SAPZYGG2.cxx(46): warning C4996: 'ICS_search_instances': "ICS_search_instances" deprecated in Teamcenter "11.2.2"; Use "ICS_ico_search" instead.
Z:\TC_install\jingdiao\c\tclib\include\ics/ics.h(187): note: 参见“ICS_search_instances”的声明
1>SAPZYGG2.cxx(271): warning C4267: “参数”: 从“size_t”转换到“int”可能丢失数据
1>SAPZYGG2.cxx(272): warning C4267: “参数”: 从“size_t”转换到“int”可能丢失数据
1>SAPZYGG2.cxx(239): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(242): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(248): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(255): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(258): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(282): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(377): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(380): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(382): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(408): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(434): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(436): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(442): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(458): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(513): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(586): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(590): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(602): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(604): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(648): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(658): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(701): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(703): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(740): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(743): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(744): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(745): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(746): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>SAPZYGG2.cxx(938): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
1>SAPZYGG2.cxx(848): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 参见“WSOM_where_referenced”的声明
1>SAPZYGG2.cxx(929): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 参见“AOM_UIF_ask_value”的声明
1>D:\VS2015\VC\include\exception(361): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc 1>D:\VS2015\VC\include\exception(361): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc
Link: Link:
D:\VS2015\VC\bin\x86_amd64\link.exe /ERRORREPORT:PROMPT /OUT:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:Z:\TC_install\ZhengTai\c\sdplog\lib /LIBPATH:Z:\TC_install\jingdiao\c\tclib\lib /LIBPATH:Z:\TC_install\ZhengTai\c\libxl\lib "Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\build\..\lib\native\lib\*.lib" "Z:\TC_install\ZhengTai\c\sdplog\lib\*.lib" "Z:\TC_install\jingdiao\c\tclib\lib\*.lib" Z:\TC_install\jingdiao\c\tclib\lib\itk_main.obj "Z:\TC_install\ZhengTai\c\libxl\lib\*.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NODEFAULTLIB:libuser_exits.ar.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /Debug /PDB:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.pdb" /SUBSYSTEM:CONSOLE /HEAP:"30000000","9000000" /STACK:"30000000","9000000" /OPT:REF /OPT:ICF /LTCG:incremental /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.lib" /MACHINE:X64 x64\Release\ado.obj D:\VS2015\VC\bin\x86_amd64\link.exe /ERRORREPORT:PROMPT /OUT:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:Z:\TC_install\ZhengTai\c\sdplog\lib /LIBPATH:Z:\TC_install\jingdiao\c\tclib\lib /LIBPATH:Z:\TC_install\ZhengTai\c\libxl\lib "Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\build\..\lib\native\lib\*.lib" "Z:\TC_install\ZhengTai\c\sdplog\lib\*.lib" "Z:\TC_install\jingdiao\c\tclib\lib\*.lib" Z:\TC_install\jingdiao\c\tclib\lib\itk_main.obj "Z:\TC_install\ZhengTai\c\libxl\lib\*.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NODEFAULTLIB:libuser_exits.ar.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /Debug /PDB:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.pdb" /SUBSYSTEM:CONSOLE /HEAP:"30000000","9000000" /STACK:"30000000","9000000" /OPT:REF /OPT:ICF /LTCG:incremental /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.lib" /MACHINE:X64 x64\Release\ado.obj
x64\Release\AutoFeeding.obj x64\Release\AutoFeeding.obj
x64\Release\BomSapWh.obj
x64\Release\BOMSendSap.obj x64\Release\BOMSendSap.obj
x64\Release\createProcessTmp.obj x64\Release\createProcessTmp.obj
x64\Release\CRUL_server_call_httpserver.obj x64\Release\CRUL_server_call_httpserver.obj
@ -241,6 +102,7 @@
x64\Release\GetBOMProp.obj x64\Release\GetBOMProp.obj
x64\Release\ocilib.obj x64\Release\ocilib.obj
x64\Release\readBomMsg.obj x64\Release\readBomMsg.obj
x64\Release\SAPGY.obj
x64\Release\SAPZYGG2.obj x64\Release\SAPZYGG2.obj
x64\Release\SAPZZNewOp.obj x64\Release\SAPZZNewOp.obj
x64\Release\soapC.obj x64\Release\soapC.obj
@ -248,11 +110,15 @@
x64\Release\soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj x64\Release\soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj
x64\Release\soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj x64\Release\soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj
x64\Release\stdsoap2.obj x64\Release\stdsoap2.obj
x64\Release\tinystr.obj
x64\Release\tinyxml.obj
x64\Release\tinyxmlerror.obj
x64\Release\tinyxmlparser.obj
x64\Release\util.obj x64\Release\util.obj
正在生成代码 正在生成代码
13 of 8278 functions ( 0.2%) were compiled, the rest were copied from previous compilation. 2 of 8674 functions ( 0.0%) were compiled, the rest were copied from previous compilation.
1 functions were new in current compilation 0 functions were new in current compilation
109 functions had inline decision re-evaluated but remain unchanged 3 functions had inline decision re-evaluated but remain unchanged
已完成代码的生成 已完成代码的生成
1>itk_main.obj : warning LNK4099: 未找到 PDB“vc160.pdb”(使用“itk_main.obj”或在“Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\vc160.pdb”中寻找);正在链接对象,如同没有调试信息一样 1>itk_main.obj : warning LNK4099: 未找到 PDB“vc160.pdb”(使用“itk_main.obj”或在“Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\vc160.pdb”中寻找);正在链接对象,如同没有调试信息一样
DFL_BOM_WL_TOERP.vcxproj -> Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.exe DFL_BOM_WL_TOERP.vcxproj -> Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.exe
@ -260,4 +126,4 @@
已成功生成。 已成功生成。
已用时间 00:00:20.12 已用时间 00:00:13.90

@ -3,7 +3,7 @@
// z:\tc_install\zhengtai\c\getbomprop\dfl_bom_wl_toerp\x64\release\msado15.tlh // z:\tc_install\zhengtai\c\getbomprop\dfl_bom_wl_toerp\x64\release\msado15.tlh
// //
// C++ source equivalent of type library c:\program files\common files\system\ado\msado15.dll // C++ source equivalent of type library c:\program files\common files\system\ado\msado15.dll
// compiler-generated file created 03/29/24 at 14:46:06 - DO NOT EDIT! // compiler-generated file created 04/23/24 at 16:00:39 - DO NOT EDIT!
#pragma once #pragma once
#pragma pack(push, 8) #pragma pack(push, 8)

@ -3,7 +3,7 @@
// z:\tc_install\zhengtai\c\getbomprop\dfl_bom_wl_toerp\x64\release\msado15.tli // z:\tc_install\zhengtai\c\getbomprop\dfl_bom_wl_toerp\x64\release\msado15.tli
// //
// Wrapper implementations for type library c:\program files\common files\system\ado\msado15.dll // Wrapper implementations for type library c:\program files\common files\system\ado\msado15.dll
// compiler-generated file created 03/29/24 at 14:46:06 - DO NOT EDIT! // compiler-generated file created 04/23/24 at 16:00:39 - DO NOT EDIT!
#pragma once #pragma once

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save