SAP STMS报错(组件版本测试中找不到数据文件)引发的后续问题处理

事情是这样的,在往Q系统传输请求时,发现提示错误

根据其他博主的解决方法:队列-调整,即按钮解决。正常情况下队列-调整菜单为灰色,按钮是不可见的。调整后依然不能用。

根据大佬的方法,试了依然不能用,但是提示错误给了我一些提示。这错误看来是有关RFC相关的配置出了问题,具体的还需要再次检查。

 这时候想着去ST22看看,一看把我吓一跳。 这谁顶得住啊,赶紧解决吧。

应用程序的报错,导致SAP通过PO与外围系统的通讯也除了问题,数据进不来也出不去。

SAP_WSRT用户应该都知道,和SOAP服务有关。

然后我就去查SOAP服务的配置(SRT_ADMIN_CHECK)

 执行后信息如下。

 昨天框起来的这俩状态为红X,管理程序后消息问账号密码错误,重输入。任务观察器后错误为,Task watcher is not active.

这时大概能判断是BGrfc的配置应该有问题。

如果500后面配置有问题,可以使用SRT_ADMIN,运行技术设置或者是重置后,再检查

SBGRFCCONF(后台远程函数调用配置)

 双击目标,看下SM59连接是不是有问题。

连接测试没问题,远程登录竟然出现了登录框,这说明用户存在异常

权限测试提示账号密码不对,肯定是用户出问题了。

SU01查询账户,发现被人删除了,这就是所有问题的根本。

 

 处理办法:SBGRFCCONF定义生成的RFC目标的密码无法更改,只能在SM59中删除,然后重建。

 目标名称和用户名和以前最好一致,选择创建账户,系统生成密码。然后点击保存。

SRT_ADMIN_CHECK无问题。

尝试重新传输请求,可以正常传输。

 

 ST22也不报错了,一切正常。

 以上为个人摸索着处理的过程,网上也没有相关教程,只能根据错误一点点的找相关配置,如有不正请各位指正。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是基于STMS32的DS18B20数据采集程序代码,仅供参考: ```c /* Includes */ #include "stm32f10x.h" /* Private typedef */ typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; /* Private define */ #define DS18B20_PORT GPIOA #define DS18B20_PIN GPIO_Pin_1 /* Private function prototypes */ void Delay_us(uint32_t us); void DS18B20_Init(void); void DS18B20_WriteBit(uint8_t bit); uint8_t DS18B20_ReadBit(void); void DS18B20_WriteByte(uint8_t byte); uint8_t DS18B20_ReadByte(void); void DS18B20_Start(void); void DS18B20_Reset(void); uint16_t DS18B20_GetTemp(void); /* Private functions */ void Delay_us(uint32_t us) { uint32_t count = us * (SystemCoreClock / 1000000) / 5; while (count--); } void DS18B20_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = DS18B20_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(DS18B20_PORT, &GPIO_InitStructure); DS18B20_Reset(); } void DS18B20_WriteBit(uint8_t bit) { GPIO_ResetBits(DS18B20_PORT, DS18B20_PIN); Delay_us(2); if (bit) { GPIO_SetBits(DS18B20_PORT, DS18B20_PIN); } Delay_us(60); GPIO_SetBits(DS18B20_PORT, DS18B20_PIN); } uint8_t DS18B20_ReadBit(void) { uint8_t bit = 0; GPIO_ResetBits(DS18B20_PORT, DS18B20_PIN); Delay_us(2); GPIO_SetBits(DS18B20_PORT, DS18B20_PIN); Delay_us(15); bit = GPIO_ReadInputDataBit(DS18B20_PORT, DS18B20_PIN); Delay_us(45); return bit; } void DS18B20_WriteByte(uint8_t byte) { uint8_t i = 0; for (i = 0; i < 8; i++) { DS18B20_WriteBit((byte >> i) & 0x01); } } uint8_t DS18B20_ReadByte(void) { uint8_t byte = 0, i = 0; for (i = 0; i < 8; i++) { byte |= (DS18B20_ReadBit() << i); } return byte; } void DS18B20_Start(void) { DS18B20_Reset(); DS18B20_WriteByte(0xCC); DS18B20_WriteByte(0x44); } void DS18B20_Reset(void) { GPIO_ResetBits(DS18B20_PORT, DS18B20_PIN); Delay_us(480); GPIO_SetBits(DS18B20_PORT, DS18B20_PIN); Delay_us(60); while (GPIO_ReadInputDataBit(DS18B20_PORT, DS18B20_PIN)); } uint16_t DS18B20_GetTemp(void) { uint16_t temp = 0; uint8_t data[2] = {0}; DS18B20_Start(); DS18B20_Reset(); DS18B20_WriteByte(0xCC); DS18B20_WriteByte(0xBE); data[0] = DS18B20_ReadByte(); data[1] = DS18B20_ReadByte(); temp = data[1] << 8 | data[0]; temp = temp * 625 / 100; return temp; } /* Public functions */ int main(void) { uint16_t temp = 0; DS18B20_Init(); while (1) { temp = DS18B20_GetTemp(); // Do something with the temperature data } } ``` 该代码实现了DS18B20温度传感器的数据采集,通过调用 DS18B20_GetTemp() 函数获取温度值。在 main 函数,可以通过温度值做出相应的处理。请注意,此代码仅供参考,具体实现应根据具体情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两年半的ABAPer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值