Liferay 6.1 では、DDLRecordIdはワークフロー コンテキスト変数のentryClassPKと同等です。これは役立つドキュメントになる可能性があります(ワークフロー コンテキスト変数に関するセクションを参照してください) 。
したがって、次の方法でアップロード ファイル フィールドを取得できます。
import com.liferay.portlet.documentlibrary.store.DLStoreUtil;
import com.liferay.portlet.dynamicdatalists.model.DDLRecord;
import com.liferay.portlet.dynamicdatalists.service.DDLRecordLocalServiceUtil;
import com.liferay.portlet.dynamicdatamapping.storage.Field;
import com.liferay.portlet.dynamicdatamapping.model.DDMStructure;
import com.liferay.portal.kernel.json.JSONFactoryUtil;
import com.liferay.portal.kernel.json.JSONObject;
import com.liferay.portal.kernel.util.GetterUtil;
import java.io.File;
import java.io.Serializable
DDLRecord ddlRecord = DDLRecordLocalServiceUtil.getDDLRecord(GetterUtil.getLong(entryClassPK));
// get the upload field
Field field = ddlRecord.getField("field_attachment");
if (field != null){
DDMStructure structure = field.getDDMStructure();
Serializable fieldValue = field.getValue();
String value = String.valueOf(fieldValue);
if (!value.isEmpty()){
JSONObject fileJSONObject = JSONFactoryUtil.createJSONObject(value);
String fileName = fileJSONObject.getString("name");
String filePath = fileJSONObject.getString("path");
File file = DLStoreUtil.getFile(structure.getCompanyId(), 0L, filePath);
}
}
これが複数の人に役立つことを願っています...