How to edit/save IBM watson assistant conditional slot values for context variables? - watson-dialog

I am trying to create a chatbot for booking flight tickets in watson assistant. The problem is that I want to enable the slot of return_date only when the trip is a roundtrip. But on testing the bot the context variable of $return_date is not getting reflected where as the $start_date is getting updated with the value of sys-date entered when prompted for return_date.
pic 1
pic 2
Also when trying if the user enters "I want to book roundtrip tickets for 4 people in economy class" then the bot asks for the remaining slot values but does not invoke the slot asking for the return date even though the trip type is mentioned in the conversation.
pic 3
pic 4
pic 5
Please suggest whether the flow needs to be changed or changes in the JSON editor will solve this problem.

Related

In Dynamics GP, how do I remove items stuck in allocated?

We use WilloWare's MO Generator to create a Manufacturing Order in Dynamics GP. It creates a MO in GP and processes it. In this case, 90 items of a raw material (an item on the BOM of the item the MO is for) is stuck in allocated. WilloWare suggested I run Component Transaction Entry and MO Receipt Entry, but I receive errors on both. The Component Transaction Entry shows a yellow triangle beside the raw material I'm having problems with and clicking Post gives the message "the transaction quantity is greater than the expected quantity needed". The MO Receipt Entry also gives a yellow triangle beside the quantity to backflush by the raw material I'm having trouble with and clicking Post gives the message "At least one component has a shortage that has been overridden". This is the extent of my GP knowledge. I'm a C# developer by trade and am only looking into this because I wrote the batch program that runs the WilloWare software. How do I get the items out of allocated?
Here is the raw item with 90 items stuck in allocated:
Here is the MO:
Here's the Manufacturing Component Transaction Entry and the error message:
Here is the Manufacturing Order Receipt Entry and the error message:
To get item from allocation you simply need to run Inventory Reconcile on that item.
Microsoft Dynamics GP -> Tools -> Utilities -> Inventory -> Reconcile
then select that item and run reconcile, you can check - Include Item History
Make sure all NO user is login in GP at that time.

G Suite Users:get and Users:list resources are not updated at the same time

I am currently using the G Suite Admin SDK API to retrieve user data. I want to check how long it takes for the user properties/fields to update.
After some checks I have realized that the User resources provided by the APIs Users:get and Users:list are not updated at the same time (I have checked this and I can tell that there is at least an offset of several minutes).
Is this the expected behaviour?
In order to reproduce this issue you can do as follows:
Choose a Google user of your own.
Log into the user account (log out first if you are already logged in)
Check the API results for Users:get and Users:list. Specifically look for the lastLoginTime parameter value.
The expected lastLoginTime value should be:
"2020-05-22T10:09:04.000Z"
However, this is what I get:
For Users:list:
"lastLoginTime": "2020-05-21T09:25:33.000Z",
For Users:get:
"lastLoginTime": "2020-05-22T10:09:04.000Z",
Thanks.

Kaltura Notifications are occationally deactivated?

We are using Kaltura to notify our CMS about changes in the videos. In the KMC under Settings->Integrations Settings we have checked all the checkboxes under "Sent by Server".
Some times these checkmarks disappear? IT happens maybe once a week or once a month. How can we find the reason to these boxes being deactivated?
Those notifications are being stored on the partner object in partner table. The actual data is stored in the custom_data field, which holds large amount of PHP-serialized data.
I can suspect cases that due to updates of other fields in the custom_data object, the notifications section will be erased.
Your best shot would be first check the value of that field when the config got erased. If it was actually erased in the database, try to find the following log messages in api_v3.log (which can lead you to the actual API request that modified the field):
[2124167851][propel] */ UPDATE partner SET
`UPDATED_AT`='2017-10-04 14:11:36',
`NOTIFY`='1',
`CUSTOM_DATA`='a:79:{s:9:"firstName";s:5:"Roman";s:12:"isFirstLogin";b:0;
... tons of PHP serialized data ...
i:1;s:19:"notificationsConfig";s:42:"*=0;1=1;2=1;3=1;4=0;21=0;6=0;7=0;26=0;5=0;";
... tons of PHP serialized data ...
}' WHERE partner.ID='101' AND MD5(cast(partner.CUSTOM_DATA as char character set latin1)) = '7eb7781cc04c7f98077efc2e3c1e9426'
The key that stores the notifications config is notificationsConfig (Each number represents the notification type, then 0 / 1 for off / no).
As a side note, which CE version are you using? There might be a more reliable way to integrate with your CMS.

reading EMV card using PPSE and not PSE

I'm trying to read the data off a contactless Visa Paywave card.
For the Paywave, I have to submit a SELECT using PPSE (2PAY.SYS.DDF01) instead of PSE (1PAY.SYS.DDF01).
The EMV book 1, section 11.3.4, table 43 only describes how to interpret the response for a successful SELECT command using PSE. Does anyone know or can refer me to a source that shows how to process the data returned from a successful SELECT command using PPSE?
Here's my request APDU:
00A404000e325041592e5359532e444446303100
Here's the response:
6F2F840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A564953412044454249548701019000
I understand tag 84, tag 85, tag BF0C from the response. According to the examples for reading PSE, I should be able to just send GET PROCESSION OPTIONS (to get the AIP and AFL) with PDOL = null after this successful response as follows: 80A80000830000.
But request 80A80000830000 returns error code 6985 - Command not allowed; conditions of use not satisfied.
I also tried reading all the files after successfully selecting the PPSE by traversing through every single SFI (0-30) and every single record (0-16) of each SFI. Yes, I also did the 3 bit shift and bitwise-OR the SFI with 0x4. But I got no data.
I'm stuck, any help that would point me into getting some info from my Paywave card would be appreciated!
Have you tried this tool from EMVLAB http://www.emvlab.org/emvtags/
Using that tool,
http://www.emvlab.org/tlvutils/?data=6F2F840E325041592E5359532E4444463031A51DBF0C1A61184F07A0000000031010500A564953412044454249548701019000
2PAY.SYS.DDF01 is for contactless (e.g. NFC ) cards, while 1PAY.SYS.DDF01 is for contact cards.
After successfully (SW1 SW2 = 90 00) reading a PSE, you should only search for the SFI (tag 88) which is a mandatory field in the FCI template returned.
With the SFI as your start index, your would have to read the records starting from the start index until you get a 6A83 (RECORD_NOT_FOUND). E.g. if your SFI is 1, you would do a readRecord with record_number=1. That would probably be successful. Then you increament record_number to 2 and do readRecord again. The increament to 3 .... Repeat it until you get 6A83 as your status.
The records read would be ADFs (at least 1). Then your would have to compare the read ADF Names with what your terminal support and also based on the ASI (Application Selection Indicator). At the end you would have a list of possible ADFs (Candidate list)
All the above steps (1-3) are documented in chapter 12.3.2 Book1 v4.3 of the EMV spec.
You would have to make a final selection (Chapter 12.4 Book1)
Read the spec book 1 chapter 12.3 - 12.4 for all the detailed steps.
You seem to have the flow mixed up a bit, you want to:
Send 1PAY or 2PAY, it doesn't actually matter for all of the cards I've tested. This will return a list of the AIDs available on the card. Alternately you can just select an AID straight away if you know it's there but good practice would be to check first.
Get the list of AIDs returned in response to 1PAY/2PAY, in PayWave's case this will probably be A0000000031010 if you sent 2PAY but you may get more if you send 1PAY.
Select one of the AIDs sent back (or one you already know is on there).
Then loop through the SFIs and records sending the Read Records command to get the data.
You don't have to send Get Processing Options before sending the Read Records command even though that's now a normal transaction flow goes.
I think the information you're looking for is available from this VISA website. But only if you're a registered and/or licensed partner of VISA.
EDIT: Looking at the resulting TLV struct under BF0C:
tag=0xBF0C, length=0x1A
tag=0x61, length=0x18
tag=0x4F, length=0x07, value=0xA0000000031010 // looks like an AID to me
tag=0x50, length=0x0A, value="VISA DEBIT"
tag=0x87, length=0x01, value=0x01
I would guess that you need to first select A0000000031010 before getting the processing options.
I was selecting application 2PAY.SYS.DDF01. when I should have been selecting AID = 0xA0000000031010. It looks like there's no records under application 2PAY.SYS.DDF01.
But there was 1 record under application 0xA0000000031010. After I got this application, I performed a READ RECORD, and the first record gave me the PAN and all the credit card info I wanted.
Thanks everyone for chiming in.

Crystal Reports New Page if More than 1 Page

I've been searching everywhere for an answer to this but no luck. I've only got limited abilities in Crystal Reports. Using CR 2008.
I've got an invoice that is split into Services and Expenses. Expenses are detailed in a sub-report.
What I want to do is force a new page at a section before the Expenses sub report if the whole invoice is more than 1 page.
I'm currently doing this by a setting "New Page After" in section expert if Services are Not $0 and Expense are not $0. along the lines of New Page After: {Table.Services} <>0 and {Table.Expense}<>0
Problem is if there is only a couple of entries for services and a couple for Expenses, this may fit on one page, but since both are not $0 it will still force a new page. I can't really do it by forcing new page if there are more than 3 service entries, as 1 service entry could in theory take up the same space as 5 small service entries.
I've tried the following workaround, but still no luck.
Created a Page count formula that will only show the total page, so if it's 2 pages, then the number 2 will show.
NumberVar startNum := 0;
ToText((TotalPageCount + startNum), 0)
I then tried to conditionally force a new page using section expert with the following:
{#PageCount}>'1'
End result is that the page will break at the section even if all info will fit on 1 page.
Hope above makes sense and hoping someone may be able to help!
Thanks
Collin
Similar scenario here.
You can group your data by "Services Name"
Then edit the formula as
GroupName ({spReport_YourReport;1.Services Name})=''

Resources