Quantcast
Channel: SCN : Discussion List - SAP HANA Developer Center
Viewing all articles
Browse latest Browse all 6412

Example of working with XSDS

$
0
0

Hi colleagues!

 

We have one simple CDS:

 

namespace training.szharko.edu.RHINE;
@Schema: 'SZHARKO'
context test1 {        entity rhine_test {            key ID : Integer;            Name : String(80);            Raiting : Association to raiting { ID } ;            Date: LocalDate;            Val : Integer64;            CountryID : Integer;            };        entity raiting {            key ID : Integer;            Name : String(80);            };        entity country {            key ID : Integer;            Name : String(80);            };
};

 

CDS tables contain the following data:

 

insert into "SZHARKO"."training.szharko.edu.RHINE::test1.rhine_test" values(1,'Alice',1,'',1,1);  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.rhine_test" values(2,'Petr',2,'2015-01-15',10,1);  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.rhine_test" values(3,'Petr',3,'2015-01-15',10,2);  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.rhine_test" values(4,'Alex',2,'2015-01-01',20,3); 
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.country" values(1,'Germany');  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.country" values(2,'Belarus');  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.country" values(3,'Russia');  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.raiting" values(1,'One');  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.raiting" values(2,'Two');  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.raiting" values(3,'Three');  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.raiting" values(4,'Four');  
insert into "SZHARKO"."training.szharko.edu.RHINE::test1.raiting" values(5,'Five');  

 

1) In the first case I create simple XSJS file with built-in association. But it doesn't work with field "CountryID.Name"

 

$.import("sap.hana.xs.libs.dbutils", "xsds");   
var XSDS = $.sap.hana.xs.libs.dbutils.xsds;  
var SoHeader = XSDS.$importEntity("training.szharko.edu.RHINE", "test1.rhine_test", {        items: {        $association: {          $entity: "training.szharko.edu.RHINE::test1.raiting" ,            $on: "$SOURCE.\"items\".\"ID\" = $SOURCE.\"Raiting\".\"ID\""          }      }    }
, {          country: {                $association: {                  $entity: "training.szharko.edu.RHINE::test1.country" ,                    $on: "$SOURCE.\"country\".\"ID\" = $SOURCE.\"CountryID\""                  }              }            }
);
var query = SoHeader.$query();  
var query2 = query.$project({ Name: true, Raiting: {ID : true, Name : true}, CountryID: {Name: true}});  
var query4 = query2.$execute();  
var query5 = query2.$sql();  
$.response.setBody(JSON.stringify(query4));

 

2) In the second case it doesn't work field "Val" (null value):

 

$.import("sap.hana.xs.libs.dbutils", "xsds");   
var XSDS = $.sap.hana.xs.libs.dbutils.xsds;  
var SoHeader = XSDS.$importEntity("training.szharko.edu.RHINE", "test1.rhine_test", {        items: {        $association: {          $entity: "training.szharko.edu.RHINE::test1.raiting" ,            $on: "$SOURCE.\"items\".\"ID\" = $SOURCE.\"Raiting\".\"ID\""          }      }    }
, {          country: {                $association: {                  $entity: "training.szharko.edu.RHINE::test1.country" ,                    $on: "$SOURCE.\"country\".\"ID\" = $SOURCE.\"CountryID\""                  }              }            }
);
var query = SoHeader.$query();  
var query2 = query.$project({ ID : true, Name: true, Raiting: {ID : true}, Date: true, Val : true});  
var query4 = query2.$execute();  
var query5 = query2.$sql();  
$.response.setBody(JSON.stringify(query4));

 

Help me, please, how can I display field "CountryID.Name", not changing CDS file and field "Val" with "Integer64" type.

 

Thank you in advance!


Viewing all articles
Browse latest Browse all 6412

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>