在 OpenMetadata 接口中使用 OMI_IGNORE_NOTFOUND 标志
Use of OMI_IGNORE_NOTFOUND flag in OpenMetadata interface
在SAS Open Metadata reference(第126页)中,它说:
UpdateMetadata 方法使您能够更新现有元数据对象的属性。如果要更新的元数据对象不存在,则 returns 出错,除非设置了 OMI_IGNORE_NOTFOUND (134217728) 标志。
这是我的问题,如果我指定标志或不指定标志,我仍然会得到相同的错误:("SASLibrary : A5X8AHW1.B40000SQ cannot be found in the wlibrary container in the Foundation repository.")
这是重现错误的片段:
import com.sas.meta.SASOMI.IOMI;
import com.sas.metadata.MetadataUtil;
import org.omg.CORBA.StringHolder;
IOMI iOMI = ... // an instance of IOMI connection
StringHolder outputMeta = new StringHolder();
String request = ""
+ "<UpdateMetadata>"
+ " <Metadata>"
+ " <SASLibrary Id=\"A5X8AHW1.B40000SQ\"/>"
+ " </Metadata>"
+ " <NS>SAS</NS>"
+ " <Flags>" + (MetadataUtil.OMI_IGNORE_NOTFOUND | MetadataUtil.OMI_TRUSTED_CLIENT | MetadataUtil.OMI_RETURN_LIST) + "</Flags>"
+ " <Options/>"
+ "</UpdateMetadata>"
;
iOMI.DoRequest(request, outputMeta);
知道出了什么问题吗?
与该文档所述相反,我只看到 OMI_IGNORE_NOTFOUND 标志与 DeleteMetadata 方法一起使用。
javadoc 似乎也支持这一点
OMI_IGNORE_NOTFOUND (134217728) This flag is for DeleteMetadata to tell it to ignore objects not found so that it will not return on error.
在SAS Open Metadata reference(第126页)中,它说: UpdateMetadata 方法使您能够更新现有元数据对象的属性。如果要更新的元数据对象不存在,则 returns 出错,除非设置了 OMI_IGNORE_NOTFOUND (134217728) 标志。
这是我的问题,如果我指定标志或不指定标志,我仍然会得到相同的错误:("SASLibrary : A5X8AHW1.B40000SQ cannot be found in the wlibrary container in the Foundation repository.")
这是重现错误的片段:
import com.sas.meta.SASOMI.IOMI;
import com.sas.metadata.MetadataUtil;
import org.omg.CORBA.StringHolder;
IOMI iOMI = ... // an instance of IOMI connection
StringHolder outputMeta = new StringHolder();
String request = ""
+ "<UpdateMetadata>"
+ " <Metadata>"
+ " <SASLibrary Id=\"A5X8AHW1.B40000SQ\"/>"
+ " </Metadata>"
+ " <NS>SAS</NS>"
+ " <Flags>" + (MetadataUtil.OMI_IGNORE_NOTFOUND | MetadataUtil.OMI_TRUSTED_CLIENT | MetadataUtil.OMI_RETURN_LIST) + "</Flags>"
+ " <Options/>"
+ "</UpdateMetadata>"
;
iOMI.DoRequest(request, outputMeta);
知道出了什么问题吗?
与该文档所述相反,我只看到 OMI_IGNORE_NOTFOUND 标志与 DeleteMetadata 方法一起使用。
javadoc 似乎也支持这一点
OMI_IGNORE_NOTFOUND (134217728) This flag is for DeleteMetadata to tell it to ignore objects not found so that it will not return on error.