cancel
Showing results for 
Search instead for 
Did you mean: 

displaying data from Lookup

Former Member
0 Kudos

Hi,

I am trying to display values from a Lookup field named "Status".

I tried using

if(records<i>.getLookupDisplayValue(objRepositorySchema.getFieldId("MDM_PRODUCTS","PRODUCTS_STATUS"))!=null){

String mdmval = records<i>.getLookupDisplayValue(objRepositorySchema.getFieldId("MDM_PRODUCTS","PRODUCTS_STATUS"));

}

which returned blank values.

Also I tried using

Record[] countries = records[0].findLookupRecords(objRepositorySchema.getFieldId "MDM_PRODUCTS","PRODUCTS_STATUS"));

I get nullpointer exception for this?

Kindly send me code samples or any related documents

Thanks

Accepted Solutions (0)

Answers (6)

Answers (6)

Former Member
0 Kudos

Hi ,

The issue has been resolved.

The code which I used is given below:

for(int i =0;i<objRecordResultSet.getCount() ; i++)

{

strRecordId = objRecordResultSet .getRecord(i).getId().toString() ;

//int intRecordId = Integer.parseInt(strRecordId);

int intRecordId = objRecordResultSet .getRecord(i).getId().getIdValue();

MdmValue mdmval = records<i>.getFieldValue(objRepositorySchema.getFieldId("MDM_PRODUCTS","PRODUCTS_STATUS"));

RetrieveRecordsByIdCommand objRecordsByIDCommand = new RetrieveRecordsByIdCommand(connections);

objRecordsByIDCommand.addId( new RecordId(strRecordId));

objRecordsByIDCommand.setSession(sessionId);

objRecordsByIDCommand.setResultDefinition(rd);

try {

objRecordsByIDCommand.execute();

} catch (CommandException e3) {

// TODO Auto-generated catch block

e3.printStackTrace();

}

String strFieldValue = null;

if(objRecordsByIDCommand.getRecords().getCount() > 0)

if(objRecordsByIDCommand.getRecords().getRecord(0).getFieldValue( new FieldId( objRepositorySchema.getFieldId("MDM_PRODUCTS","PRODUCTS_STATUS")))!= new NullValue())

{

strFieldValue = objRecordsByIDCommand.getRecords().getRecord(0).getFieldValue( new FieldId( objRepositorySchema.getFieldId("MDM_PRODUCTS","PRODUCTS_STATUS"))).toString();

}

for(int k = 0; k<strStatus1.length;k++)

{

String we = statusRecordResultSet.getRecord(k).getId().toString() ;

if(we.equals(strFieldValue)){

String strValue3 = statusRecordResultSet.getRecord(k).getFieldValue(objRepositorySchema.getFieldId("New_Code9","STATUS_STATUS")).toString() ;

System.out.println("Product Status>>"+strValue3);

}

}

}

Former Member
0 Kudos

Hi,

I am trying to collect MDMValues in an array as seen below

MdmValue mdmval[] = records<i>.getFieldValue(objRepositorySchema.getFieldId("New_Code9","STATUS_STATUS"));

I get error as cannot convert error. I am not able to append to an array also.

Please let me know how to acheive this? A piece of code would be great help

Thanks

Prabhu.M...

Former Member
0 Kudos

Hi, With the below piece of code I am able to get status from status field as Active, InActive.

if(statusCommand.getRecords()!=null)

{

RecordResultSet statusRecordResultSet = statusCommand.getRecords();

Record [] record1 = statusCommand.getRecords().getRecords();

System.out.println("record1.length>>"+record1.length);

strStatus1 = new String[record1.length];

// RecordResultSet objRecordResultSet = limitingCommand.getRecords();

for (int d=0;d<record1.length;d++)

{

// System.out.println("intRecordId>>"+intRecordId);

strStatus1[d] = statusCommand.getRecords().getRecord(d).getFieldValue( new FieldId( objRepositorySchema.getFieldId("New_Code9","STATUS_STATUS"))).toString();

System.out.println("strFieldValue>>>"+strStatus1[d]);

}

}

Also I get records as R1 , R2 using the below piece of code

if(limitingCommand.getRecords()!= null){

RecordResultSet objRecordResultSet = limitingCommand.getRecords();

String strRecordId = "";

for(int i =0;i<objRecordResultSet.getCount() ; i++)

{

strRecordId = objRecordResultSet .getRecord(i).getId().toString() ;

//int intRecordId = Integer.parseInt(strRecordId);

int intRecordId = objRecordResultSet .getRecord(i).getId().getIdValue();

//System.out.println("strRecordId>>>"+strRecordId);

RetrieveRecordsByIdCommand objRecordsByIDCommand = new RetrieveRecordsByIdCommand(connections);

objRecordsByIDCommand.addId( new RecordId(strRecordId));

objRecordsByIDCommand.setSession(sessionId);

objRecordsByIDCommand.setResultDefinition(rd);

try {

objRecordsByIDCommand.execute();

} catch (CommandException e3) {

// TODO Auto-generated catch block

e3.printStackTrace();

}

String strFieldValue = null;

if(objRecordsByIDCommand.getRecords().getCount() > 0)

strFieldValue = objRecordsByIDCommand.getRecords().getRecord(0).getFieldValue( new FieldId( objRepositorySchema.getFieldId("MDM_PRODUCTS","PRODUCTS_STATUS"))).toString();

System.out.println("strFieldValue>>>"+strFieldValue);

}

As a result I get

strFieldValue>>>ACTIVE

strFieldValue>>>INACTIVE

strFieldValue>>>R2

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

Now my requirement is , I need to match the status (Active/InActive) coresspondigly to the records R1, R2.

and display the results.

Kindly let me know how to do this?

Thanks

Former Member
0 Kudos

Hi,

I still get records displayed as

strFieldValue>>>R2

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

strFieldValue>>>R1

Thanks

Former Member
0 Kudos

Hi Prabhu,

You can use the following code to retrieve the lookup value based on the Record Identifier (i.e. R1, R2...). Just pass the required Table Id, Field Id and Record Id to the below command and you will get the Value.


			ResultDefinition objResultDefiniton = new ResultDefinition(new TableId(LookupTableID));
			objResultDefiniton.addSelectField( new FieldId( (LookupstrFieldID ) ) );
			
			RetrieveRecordsByIdCommand objRecordsByIDCommand = new RetrieveRecordsByIdCommand(objConnectionAccessor);
			objRecordsByIDCommand.addId( new RecordId(LookupRecordID));
			objRecordsByIDCommand.setSession(strUserSessionID);
			objRecordsByIDCommand.setResultDefinition(objResultDefiniton);
			objRecordsByIDCommand.execute();
			String strFieldValue = null;
			if(objRecordsByIDCommand.getRecords().getCount() > 0)
				strFieldValue = objRecordsByIDCommand.getRecords().getRecord(0).getFieldValue( new FieldId( LookupFieldID )) .toString() ;

Hope this helps!!

Regards,

Arafat

Former Member
0 Kudos

Hi,

The null value that gets stored in MDM is not null it is new NUllValue(). so inspite of comparing the values for !=null try giving value != new NullValue(). I think it will solve ur problem.

Regards,

Vibha