在 OpenMetadata 接口中使用OMI_IGNORE_NOTFOUND标志



在SAS开放元数据参考(第126页(中,它说:方法使您能够更新现有元数据对象的属性。如果要更新的元数据对象不存在,则返回错误,除非设置了 OMI_IGNORE_NOTFOUND (134217728( 标志。

这是我的问题,如果我指定标志或不指定标志,我仍然会收到相同的错误:("SASLibrary : A5X8AHW1。B40000SQ在基金会存储库的 wlibrary 容器中找不到。

下面是重现错误的代码段:

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( 此标志用于 DeleteMetadata 告诉它忽略未找到的对象,以便它不会在出错时返回。

com.sas.metadata.remote.MdOMIUtil Interface Field Summery

最新更新