如何捕获 CMC(中央管理控制台)或 WEBI 工具中可用的所有报告的 CUID 并将其粘贴到 Excel 中?
手动我可以通过查看每个报告属性进行检查,但是如果我希望通过编码手动捕获所有 CUID,这可能吗?
这可以用Java语言完成吗?
如何捕获 CMC(中央管理控制台)或 WEBI 工具中可用的所有报告的 CUID 并将其粘贴到 Excel 中?
手动我可以通过查看每个报告属性进行检查,但是如果我希望通过编码手动捕获所有 CUID,这可能吗?
这可以用Java语言完成吗?
不是我的,但希望它可以帮助你:
以下是将 Web Intelligence 文档导出为 CSV 格式的示例 Java 代码。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class Document {
public static void main(String[] args) {
try {
URL url = new URL(
“http://localhost:6405/biprws/raylight/v1/documents/7485/dataproviders/DP0/flows/0“);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(“GET”);
conn.setRequestProperty(“Accept”, “text/plain”);//change to text/plain if you want in CSV format
String logonToken = “\”” + getLogonToken() + “\””;
conn.setRequestProperty(“X-SAP-LogonToken”, logonToken);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();
if (conn.getResponseCode() != 200) {
throw new RuntimeException(“Failed : HTTP error code : “
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
// Exported CSV file will be generated at “C://rest.csv”, location could be changed as required.
File f1 = new File(“C://rest.csv”);
f1.createNewFile();
FileWriter fw = new FileWriter(f1);//change extension to .csv for csv format
BufferedWriter bw = new BufferedWriter(fw);
while ((output = br.readLine()) != null) {
bw.write(output);
bw.write(“\n”);
}
bw.close();
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
public static String getLogonToken() throws ParseException, IOException {
String logontoken = null;
URL url = new URL(“http://localhost:6405/biprws/logon/long/“);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“Accept”, “application/json”);
conn.setRequestProperty(“Content-Type”,
“application/xml; charset=utf-8”);
conn.setDoInput(true);
conn.setDoOutput(true);
String body = “<attrs xmlns=\”http://www.sap.com/rws/bip\“>”
+ “<attr name=\”userName\” type=\”string\”>Administrator</attr>”
+ “<attr name=\”password\” type=\”string\”>Password</attr>”
+ “<attr name=\”auth\” type=\”string\” possibilities=\”secEnterprise,secLDAP,secWinAD\”>secEnterprise</attr>”
+ “</attrs>”;
int len = body.length();
conn.setRequestProperty(“Content-Length”, Integer.toString(len));
conn.connect();
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
out.write(body, 0, len);
out.flush();
if (conn.getResponseCode() != 200) {
throw new RuntimeException(“Failed : HTTP error code : “
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String jsontxt = br.readLine();
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(jsontxt);
logontoken = (String) json.get(“logonToken”);
conn.disconnect();
return logontoken;
}
}
你也可以检查一下:
https://blogs.sap.com/2013/09/13/export-webi-report-using-the-restful-sdk/
BO 包含一个名为 Query Builder 的查询工具,可用于提取元数据,例如 CUID、名称等。
这里有一些信息。要获取 CUID 和名称,您可以使用以下简单查询:
select si_cuid,si_name from ci_infoobjects where si_kind = 'webi'