Мне нужно создать службу Java, которая извлекает значение поля во время выполнения. Путь к полю в каноническом и сам канонический документ нужно указать на вход.
Например: fromDoc состоит из поддокументов внутри него, в иерархии, т.е. fromDoc/Данные/Параметры/outDate
•fromDoc
•Data
•Parameters
•outDate(string)
Для inStringValues я даю ввод как «fromDoc/Data/Parameters/outDate»
выходные данные должны возвращать значение переменной fromDoc/Data/Parameters/outDate во время выполнения.
У меня есть код, который реализует это с помощью логики пары ключ-значение.
IDataCursor pipelineCursor = pipeline.getCursor();
// fromDoc
IData fromDoc = IDataUtil.getIData( pipelineCursor, "fromDoc" );
String[] inStringValues = IDataUtil.getStringArray( pipelineCursor, "inStringValues" );
if ( fromDoc == null)
{
return;
}
pipelineCursor.destroy();
int len = inStringValues.length;
String[] outStrings = new String[len];
IDataCursor fromCursor = fromDoc.getCursor();
boolean hasData = false;
while( fromCursor.next() )
{
for(int i=0;i<len;i++)
{
String key = fromCursor.getKey();
String val = fromCursor.getValue().toString();
if(key.equals(inStringValues[i]))
{
outStrings[i]=key + "," + val;
}
}
}
fromCursor.destroy();
IDataCursor pipelineCursor_1 = pipeline.getCursor();
IDataUtil.put( pipelineCursor_1, "outStrings", outStrings );
pipelineCursor_1.destroy();
Пожалуйста, дайте мне знать, как я могу изменить этот код для реализации вышеупомянутой логики? Или дайте мне знать, если у кого-то есть такая существующая услуга с вами.