HCP IOT的问题-消息转发(HTTP)-XSJS服务未调用

2020-09-17 03:33发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们正在尝试实现消息...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我们正在尝试实现消息转发(HTTP)以处理IOT设备发送的消息。 我们希望处理传入的消息,将其转换为特定格式,并需要存储在HCP表中。 为了处理来自物联网设备的传入消息,我们创建了一个.xsjs服务。 请找到随附的Word文档,以了解我们为实现此目的而采取的步骤。

问题是发送消息后,它没有达到实际的终点,在我们的例子中是xsjs服务。 但是我们仍然收到从设备收到1条消息的响应。 我们看不到从IOTMMS接收到的任何有效载荷。

已执行的步骤:

  1. 创建的消息类型,设备类型和设备
  2. 创建的xsjs服务包含用于处理来自物联网设备的消息的逻辑
  3. 通过提交HTTP PUT请求来配置HTTP处理服务
  4. 通过彩信座舱发送消息

请参阅以下详细级别信息:

步骤1。 服务配置:
{
" deviceType":" 0525eff757bdfd608ac4",
" messageType":" 3d79fcdb8226ce348fd3",
" processingServices":[
{
"名称 ":" http",
" properties":{
" mms.processing.http.url":" https://jofa9908cdf9.hana.ondemand.com/IBAS/GENERAL/XSJS/Test_Message.xsjs ",
" mms.processing .http.send_mode":"消息",
" mms.processing.http.auth_mode":" basicauth",
" mms.processing.http.basicauth.username":" xxxxxxx",
" mms.processing.http.basicauth.password":" xxxxxxx",
" mms.processing.http.proxy_enabled":" true",
" mms.processing.http.proxy_host":"代理",< br>" mms.processing.http.proxy_port":" 8080"
}
}
]
}

步骤2。 .XSJS文件
(function(){
var messageDef = $ .import(" ../../GENERAL/UTIL/MESSAGE.xsjslib");

var httpStatus ;
var dbconn = $ .db.getConnection();
var hdbconn = $ .hdb.getConnection();

var failedResponse = function(message){
var result = JSON .parse(messageDef.message);//消息格式
result.Message =消息;
result.MessageType = messageDef.types.Error;
返回结果;
};

var successResponse = function(message){
var result = JSON.parse(messageDef.message);//消息格式
result.Message =消息;
result.MessageType = messageDef.types.Success;
返回结果;
};

var message = function(){

var input = getInput();
var device = input.device;
var messageType = input.messageType;
var messages = input.messages;

var sql ='插入" SCHEMA"。" TABLE"(DEVICE,MESSAGETYPE,MESSAGES)VALUES('+"'" + input.device +"'" +','+"'" + input.messageType +"'" +','+"'" + input.message s +"'" +')';
var res = hdbconn.executeUpdate(sql);
hdbconn.commit();
};


var getInput = function( ){
if($ .request.body){
var content = $ .request.body.asString();
return JSON.parse(content);
} else {
var obj = {};
return obj;
}
};
var main = function(){
try {

var result = message(); < br>
if(结果){
$ .response.setBody(JSON.stringify(result));
}
}捕获(e){
if(!httpStatus){< br> httpStatus = $ .net.http.BAD_REQUEST;
}
$ .response.contentType =" application/json";
$ .response.setBody(messageDef.failedResponse(e.message).body );
}最后{
dbconn.close();
hdbconn.close();
$ .response.contentType =" application/json";
$ .response.status = $ .net.http.OK; //|| $ .net.http.BAD_REQUEST;
}
};
main();
}(this));

步骤3。 服务配置响应
{
" msg":"已注册设备类型为[0525eff757bdfd608ac4]和消息类型为[3d79fcdb8226ce348fd3]的处理服务映射"
}


步骤4。 通过MMS Cockpit通过HTTP进行消息传递

引用 step4.jpg

步骤5。 来自HTTP API服务器的响应

引用 step5.jpg

来自HTTP API服务器的响应表示成功,但似乎端点没有被击中,因为我们无法看到从IOTMMS接收到的任何有效负载。

感谢您的帮助以解决此问题。

谢谢

安吉塔

step4.jpg (46.9 kB)