I am uploading a dataset to a JAVA program that is serving as an intermediary between me and a redcap per the protocol of our IT department. As such I need to push a JSON dataset through the API (via proc http). The data inside the JSON file can be CSV but there is still a format for the overall file and since the data will change with each upload I've been trying to use a macro to call the data into the statement but I'm running into errors that I think are related to the quotes. The statement below works when I submit it with two observations manually entered where the variables "id" and "study_refusal" are listed only once first and the observations are comma delimited and separated by an escape character \n. ods escapechar="\" proc http url="&myurl." OAUTH_BEARER="&mytoken." method="POST" in='{"projectId":"290","data": "id,study_refusal\n100009,0\n104568,1" ,"dataFormat":"csv","serverName":"INTERNAL"}' ct="application/json" ; run; quit; Once I try to switch out the variable names and the data with macro variables formatted the same way it starts to get caught up in the quotes and I can't get it to execute. I've tried to make just the variable names and the data a single macro, I've tried to use %str to mask the quotes so that the macro variables will still resolve. As I'm trying to troubleshoot I'm still using only a few variables and observations but my final upload could be hundreds of observations a day. Here are some of the things I've tried at the line as a substitution for the in statement. Attempt #1: %let varnames=id,study_refusal; %let datvar=\n100009,0\n104568,1; %let supervar.={"projectId":"290","data": "&varnames&datvar." "dataFormat":"csv","serverName":"INTERNAL"} in='&supervar' Attempt #2: to use %str to stop the errors related to the quotation marks and still allow the macro variables to submit. in=%str(%'{%"projectId%":%"290%",%"data%": %")&varnames&datvar.%str(%", %"dataFormat%":%"csv%",%"serverName%":%"INTERNAL%"}%') Any thoughts or suggestions would be appreciated! Thanks!
... View more