找回密码
 立即注册

QQ登录

只需一步,快速开始

DGN

初级会员

24

主题

77

帖子

251

积分

初级会员

积分
251
DGN
初级会员   /  发表于:2023-4-10 18:27  /   查看:2987  /  回复:11
您好:

请问传入参数,如何设计实现:在没数据时赋值null(如下),有数据时为日期格式的数据



尝试了“可忽略”(如下),接口测不通




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

11 个回复

倒序浏览
Eden.SunWyn认证
超级版主   /  发表于:2023-4-11 10:01:53
沙发
您好,“可忽略”勾选上的时候,参数就是会设为Null值,我看咱们的描述,没有值的时候就是要传递null,
咱们说的接口测试不通,是参数传递内容不对还是说是接口没调通呢?参数内容不对的话,咱们实际收到的参数内容是什么,咱们在具体分析下,
如果是接口不通的话,咱们先检测一下接口保证结构可以正常使用呢。
回复 使用道具 举报
DGN
初级会员   /  发表于:2023-4-11 10:38:20
板凳
1.接口是可以正常使用的,PrintStartTime为null时,接口通的,data有数据。POSTMAN测试接口如下:


2.报表文件设置为可忽略,


3.POSTBODY设置如下:


4.PrintStartTime有数据时,接口通的,报表显示数据:




5.PrintStartTime勾选“空”,接口不通,data没数据




6.勾选null,参数好像是“”空字符串,不是null
是不是因为postbody写法导致的,那postbody应该怎么设置呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
DGN
初级会员   /  发表于:2023-4-11 10:59:40
地板

把postbody的参数设置拿出来看



有数据时,无误



空时,参数是空字符串


也尝试了另一个帖子你们提供的解决办法:

方法1 char函数未知
"PrintStartTime":{IIF(@PrintStart = "", null, chr(34) + Format(@PrintStart, "yyyy-MM-DD")) + chr(34)}

方法2--语法错误
"PrintStartTime": {IIF(@PrintStart = "", null, """" & Format({@PrintStart}, "yyyy-MM-DD")) &""""}



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-4-11 14:08:11
5#
DGN 发表于 2023-4-11 10:59
把postbody的参数设置拿出来看

看您的意思就是想输入值的时候传递如下:
"key": "value"
不输入值的时候传递如下:
"key": null

那这种你把参数设置为如下即可:
"PrintStartTime": {IIF(isDate(@PrintStart), """" & Format(@PrintStart, "yyyy-MM-dd") & """", "null")}
然后参数设为可忽略即可
回复 使用道具 举报
DGN
初级会员   /  发表于:2023-4-11 16:17:00
6#
参数按照您的设置了:
"PrintStartTime": {IIF(isDate(@PrintStart), "" & Format(@PrintStart, "yyyy-MM-dd HH:mm:ss") & "", "null")},


结果:
参数没数据时,"PrintStartTime": null  --无误

参数有数据时,"PrintStartTime": 2023-03-01 00:00:00,缺少" " 如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
DGN
初级会员   /  发表于:2023-4-11 16:25:35
7#


是跟引号的个数有关系嘛?



如上图,编辑时为"""",保存后为"",见下图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-4-11 17:47:40
8#
DGN 发表于 2023-4-11 16:25
是跟引号的个数有关系嘛?

这个转移是正常的,那您就是要都带""

那直接在外面加就可以了
"PrintStartTime": “{IIF(isDate(@PrintStart), "" & Format(@PrintStart, "yyyy-MM-dd HH:mm:ss") & "", "null")}”,
回复 使用道具 举报
DGN
初级会员   /  发表于:2023-4-12 09:22:10
9#

按照你的方法设置参数了,跟我上面的帖子说的一样,选择参数为空时,传入的不是null,而是空字符串

设置1:
"PrintStartTime": "{IIF(isDate(@PrintStart), "" & Format(@PrintStart, "yyyy-MM-dd HH:mm:ss") & "", “null”)}"
结果1:
参数 有数据时,无误
参数 空时,"PrintStartTime"="null",而不是"PrintStartTime"=null,如下图




设置2:
"PrintStartTime": "{IIF(isDate(@PrintStart), "" & Format(@PrintStart, "yyyy-MM-dd HH:mm:ss") & "", null)}"
结果2:
参数 有数据时,无误
参数 空时,"PrintStartTime"=" ",而不是"PrintStartTime"=null,如下图


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-4-12 13:50:54
10#
DGN 发表于 2023-4-12 09:22
按照你的方法设置参数了,跟我上面的帖子说的一样,选择参数为空时,传入的不是null,而是空字符串

设 ...

抱歉,忘了您的null不需要双引号:
使用如下写法即可
"PrintStartTime": {IIF(isDate(@PrintStart), chr(34) + Format(@PrintStart, "yyyy-MM-dd HH:mm:ss") + chr(34), "null")}
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部