How to get Oracle node in release 1.0 - corda

Up to Milestone 14, I was used to get the Oracle node using:
val nodes = serviceHub.networkMapCache.getNodesWithService(*ServiceType*)
Now in release 1.0, according to the oracle-example, the Oracle Node lookup has to be made by legal name, is that right?

That's correct. You'd use something like:
networkMapCache.getNodeByLegalName(oracleName)?.legalIdentities?.first() ?: throw IllegalArgumentException("Requested oracle $oracleName not found on network.")
We will be re-introducing service identities in some form in the future.

Related

In Gremlin, how can I use the SubgraphStrategy when submitting a script

I am issuing Gremlin queries to a AWS Neptune database as follows:
client = Client(f"wss://{self.host}:{self.port}/gremlin", "g")
client.submit("g.V()...")
This works fine and I get the expected results.
I would like to include a SubgraphStrategy when issuing these queries. (I'm using a SubgraphStrategy to ignore nodes marked as deleted.) I can do this when I build the query dynamically, like this:
g = traversal().withRemote(remoteConn).withStrategies(
SubgraphStrategy(
vertices=__.hasNot("is_deleted"), edges=__.hasNot("is_deleted")
)
)
g.V()...
I cant figure out how to specify the subgraph strategy when issuing the query as a string. For example, I've tried this:
client = Client(f"wss://{self.host}:{self.port}/gremlin", "g")
client.submit('g.withStrategies(SubgraphStrategy.build().vertexProperties(hasNot("is_deleted")).V()...')
Does anybody know how to do this?
Neptune doesn't allow for that Java syntax that uses .build() when creating strategies, but I think it will support the Groovy syntax that was introduced at TinkerPop 3.4.9:
g.withStrategies(ReadOnlyStrategy,
new SubgraphStrategy(vertexProperties: __.hasNot('endTime')))

HTTP status code: 404 Received error: Code: 47, e.displayText() = DB::Exception: Unknown identifier: TableauSQL.cnt, e.what() = DB::Exception

I connected to clickhouse with tableau.
A query like this
select * from table_name limit 1
returns fields of the table, even though it should return raws.
image
If I try
select subs_key from table name limit 1
And click preview results
preview results
I get the error from above(except cnt is replaced with subs_key or whatever field I try to select)
How can I actually view table data?
Edit
There is a connection to the db, but no table is shown in available schemas.
EDIT 2
I managed to connect and get data from an oracle and mysql database, but while I am connected to click house, I can't see any data.
Don't quote me on this but I believe tableau has not official support for clickhouse, at least I could not find anything to contradict this, tons of people asking for it but nothing concrete.
There might some sort of beta integration that's not yet stable, hence you problem, but this is just blind guessing.
What I can recommend, if you really need a UI and can't just use the cl client is using tabix:
https://github.com/smi2/tabix.ui
Its fully open source for now and should be pretty easy and straight forward to learn, there might be the odd bits of Russian here and there, but I believe its getting debugged and translated at quite a good pace.
I get the same error message when I use DBeaver.
SQL Error [47]: ClickHouse exception, Code: 47, e.displayText() =
DB::Exception: Unknown identifier: default_type, e.what() = DB::Exception
If it's not a coincidence, then it's a JDBC driver bug.

Microsoft Cognitive Services Face API : FaceNotFound while using Verify API

Following are the steps
Create a Person and add Face
Like to register person details and ensure the Face Id is persisted
Step 1. faceServiceClient.CreatePersonGroupAsync(groupId, groupName);
Step 2. p.PersonId = _faceServiceClient.CreatePersonAsync(groupId, p.Name).Result.PersonId;
Step 3.
var persistPersonFaceID = _faceServiceClient.AddPersonFaceAsync(groupId, p.PersonId, fStream).Result.PersistedFaceId;
Step 4. _faceServiceClient.TrainPersonGroupAsync(groupID);
Now, like to authenticate a person using the Image provided
Step a
var DetectedFaceID = _faceServiceClient.DetectAsync(firstFilestream, true, true).Result.FaceId;
Step b..
var res = _faceServiceClient.VerifyAsync(persistPersonFaceID, DetectedFaceID).Result;
On the call to VerifyAsync, It throws and error like following
{"error":{"code":"FaceNotFound","message":"Face '7a89ace1-a4b7-4c08-b718-4fec0e9e89d5' is not found."}}
Please do let me know if any of the above needs to be corrected
Possible Issues:
A persistPersonFaceID belongs to a group and I am trying to compare the face id which was retrieved by using Detect. If this is a problem, can you please suggest a resolution
/verify only takes faceIds currently, not persistedFaceIds you're getting back after persisting to a person object.
If I've understood your scenario correctly, you can use either /findsimiliars or /identify since you're persisting the known face.
With /identify you'd pass in DetectedFaceID and specify the groupId (API reference for /identify)
Adding this support for verify is something being planned and if you wouldn't mind I'd encourage you to add some votes to it on uservoice: /verify should also take persistedFaceIds

The given key was not present in the dictionary while retrieving pre-image entity crm 2013

i have registered pre_image with the name 'prentity' and alias 'prentity' and i am retrieving
it as follow
Entity pentity = (Entity)context.PreEntityImages["prentity"];
but giving error 'The given key was not present in the dictionary.'
If you have registered the plugin in create mode the preimage will not be available. May be that is the reason why that image is not available.
Please refer the link below where it explains about the pre and post images.
https://community.dynamics.com/crm/b/crminogic/archive/2010/07/26/pre-image-38-post-image-explained-33.aspx
This is because you don`t register pre-image.
My piece of advice: It is depend on situation, but you can use Target.
Example:
Entity entity = (Entity)context.InputParameters["Target"];
Target contain all fields that user has fill up.
here is the code to get preImage:
var currentRecord= (context.PreEntityImages != null && context.PreEntityImages.Contains("prentity")) ? context.PreEntityImages["prentity"] : null;
NB: you can not use preImage for an "OnCreate" Message,

Returning ItemStats from Tridion UGC

I was wondering if anyone can offer any pointers on this one. I'm trying to return ItemStats from the Tridion UGC web service but I'm getting the following error when trying to bind the results:-
The closed type TridionWebUGC.CDS.ItemStat does not have a corresponding LastRatedDate settable property.
An example of code is:-
WebServiceClient ugcCall2 = new WebServiceClient();
Uri uri = new Uri("http://new.ugc.service/odata.svc");
CDS.ContentDeliveryService cds = new CDS.ContentDeliveryService(uri);
var myItemStats = cds.ItemStats.Where(p => p.PublicationId == 68 && p.Id == 17792 && p.Type==16);
I can get comments and ratings with no problem. E.g.
var myComments = cds.Comments.Where(p => p.ItemId == 17805).OrderBy(p => p.CreationDate);
It's just ItemStats that are giving me an issue. Anybody any ideas?
Thanks
John
Unfortunately, the metadata of the UGC WebService is not correct in regards to the ItemsStats. For you it means that the webservice metadata does not expose the fact that the ItemStat entity contains the LastRatedDate property. This makes your .NET proxies not to be aware of this property and makes your query fail.
To work-around this defect you have two option:
Add to your service the following property: cds.IgnoreMissingProperties = true;. Advantage of this approach is that you're done with it in 2 sec. Disadvantage is that you will not be able to access that property (in case you actually use it);
Modify the proxies generated by Visual Studio and manually add that property to the ItemStat class. Advantage of this approach is that you will be able to access the property from your project. Disadvantage is that it's totally not manageable from the coding point of view, you need to be careful when you upgrade or regenerate the proxies and it's easy to make a mistake while manually adding the property.
Note 1: to access the metadata of your webServer from the browser your can go to /odata.svc/$metadata.
Note 2: on a closer look there are 2 properties missing from the webService metadata: LastRatedDate and LastCommentedDate.
Hope this helps.

Resources