Pentaho Design Studio - Blank report - warning Invalid chunk - pentaho

I created a simple xaction with jdbc connection.The action was successful but am getting a blank report.
Resultset is not shown up.
enter code here
<?xml version="1.0" encoding="UTF-8"?>
<action-sequence>
<title>latest1</title>
<version>1</version>
<logging-level>TRACE</logging-level>
<documentation>
<author>reskin</author>
<description>Empty blank action sequence document</description>
<help/>
<result-type>none</result-type>
<icon/>
</documentation>
<inputs/>
<outputs>
<resultset type="result-set" is-output-parameter="false">
<destinations>
<response>resultset</response>
</destinations>
</resultset>
</outputs>
<resources/>
<actions>
<action-definition>
<component-name>SQLLookupRule</component-name>
<action-type>Relational</action-type>
<action-outputs>
<query-result type="result-set" mapping="resultset"/>
</action-outputs>
<component-definition>
<query><![CDATA[select * from cust_txn_list]]></query>
<live><![CDATA[true]]></live>
<driver><![CDATA[com.mysql.jdbc.Driver]]></driver>
<connection><![CDATA[jdbc:mysql://localhost:3306/hive_sample]]></connection>
<user-id><![CDATA[root]]></user-id>
<password><![CDATA[553450]]></password>
</component-definition>
</action-definition>
</actions>
</action-sequence>
I am getting the following warning message in BI Server log
Parameters: Invalid chunk '' ignored. is the warning

My problem is solved.The problem was due to the ouput paramater,"is output parameter checkbox should be checked always.

Related

SoapUI Assertions - either XPath or Contains Assertion would be fine

Sample response below. I want to check the existence of a specific error code (860) in the response below. Technically, to avoid picking the error up accidentally in a reference number, I need to be checking it is in the bit labelled < code >860< /code > (inserted spaces so it would show).
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:activatePortResponse xmlns:ns2="http://transferobjects.abc.abc.org">
<return som="6001365" state="Approved">
<errors>
<error>
<code>860</code>
<description>The Port cannot be activated outside the ready for service dateTime window (grace period taken into account).</description>
<mnemonic>RFS_WINDOW</mnemonic>
</error>
<name>som</name>
</errors>
<success>false</success>
</return>
</ns2:activatePortResponse>
</soap:Body>
</soap:Envelope>
I was trying to build a set of calls with expected error results to check the the error responses are returned as they should. Going through all the usual garbage messages that meant nothing to me, I just kept tweaking.
Turned out I could use a Contains method and just paste in more, rather than just 860 or even < code >860< /code > I just had to paste in a bigger chunk like this:
<error>
<code>860</code>
<description>The Port cannot be activated outside the ready for service dateTime window (grace period taken into account).</description>
<mnemonic>RFS_WINDOW</mnemonic>
</error>
So I have a solution, but if anyone wants to show me how to do it with XPath, in a less hamfisted way, that would be cool.
You could do an XPath Match assertion with the following expression //error/code, which in the above response message would find 860. This way you know that this 860 has been found at a particular place in the XML hierarchy.

Tsung Issue with Dyn_Variable

I am very new to ERLANG and TSung, I never worked in this areas, but I am very much keen to know the fundamentals and do distributed load test for my web application. I am in half the way to complete, but I have a big hurdle and not able to moving forward , please read below tsung.xml file and advise me where & what I am missing?
**===> tsung.xml (this file perfectly working without any errors)**
*<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung loglevel = "debug" dumptraffic="true" version="1.0">
<clients>
<client host="localhost" weight ="1" maxusers="40000" cpu = "1" >
<ip value = '127.000.000.111'/>
</client>
</clients>
<servers>
<server host="127.000.000.112" port="80" type="tcp"></server>
</servers>
<load duration="1" unit="minute">
<arrivalphase phase="1" duration="1" unit="minute">
<users arrivalrate="10" unit="second"></users>
</arrivalphase>
</load>
<sessions>
<session name="mySession" probability="100" type="ts_http">
<transaction name="trx">
<request>
<dyn_variable name="myId" re="<myId>(\.*)\</myId>"/> <-- Trying with RegExp option, not getting the value myId
<!--dyn_variable name="myId" xpath="//response/myId" /--> <-- Trying with xpath option, not getting the value myId
<!--dyn_variable name="myId" jsonpath="response.myId" /--> <-- Trying with jsonpath option, not getting the value myId
<http url='http://127.000.000.112/Create_Rec' method='POST' version='1.1' content_type='text/xml'/>
</request>
<request subst="true">
<http url='http://999.000.000.999/Get_Rec/myId=%%_myId%%' method='GET' version='1.1' content_type='application/xml'/>
</request>
</transaction>
</session>
</sessions>
</tsung>*
When I run this url (it is web service call) "http://_127.000.000.112/Create_Rec" in the web browser, I get the following similar response from Server (in the back ground it creates the record in database and generates new id i.e. myId). When I run above tsung.xml, the first request working perfectly fine as I expected.
===> response (browser response)
<response id="SomeWebService">
<status>
<statusCode>1</statusCode>
<statusMsg>SomeMessage</statusMsg>
<statusTime>2013-06-20 02:52:25</statusTime>
</status>
<myId>298346728934734987</myId>
</response>
What I am looking here, I need to grab the myId from first request and pass into second request myId=%%_myId%%, but it is never working and myId always empty string. I am beyond of dyn_variable since two days, no clue and proper examples/documentation on it. Please suggest me, what I am missing.
You will have to set up the subst="true" in your request for substitution to work. So, your request should change to..
<request subst="true">
If still it doesn't work then I would suggest you to see the tsung.dump file and check the response which you are getting from server

Inuit TimeActivity Create: The request sent by the client was syntactically incorrect

I am trying to test my ability to import TimeActivity records and even when using the sample Create Request XML for TimeActivity I get an error:
Apache Tomcat/7.0.23 - Error report HTTP Status 400 - type Status reportmessage description The request sent by the client was syntactically incorrect ().Apache Tomcat/7.0.23
below is my sample xml create request (pulled from https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0400_quickbooks_online/timeactivity)
<?xml version="1.0" encoding="utf-8"?>
<TimeActivity xmlns:ns2="http://www.intuit.com/sb/cdm/qbo" xmlns="http://www.intuit.com/sb/cdm/v2">
<TxnDate>2011-08-03-07:00</TxnDate>
<NameOf>Vendor</NameOf>
<Vendor>
<VendorIdidDomain="QBO">3793</VendorId>
</Vendor>
<CustomerId>3794</CustomerId>
<ItemId>3</ItemId>
<ClassId>1</ClassId>
<StartTime>2011-08-30T11:45:00-07:00</StartTime>
<EndTime>2011-08-30T13:15:00-07:00</EndTime>
<Taxable>true</Taxable>
<HourlyRate>10.5</HourlyRate>
<BillableStatus>Billable</BillableStatus>
<Hours>10</Hours>
<Minutes>5</Minutes>
<Description>This is a Description</Description>
</TimeActivity>
What am I doing wrong here?
Sharing a sample TimeActivity create request. Please check other reference attributes like Vendor, Class etc. It should work.
<?xml version="1.0" encoding="utf-8"?>
<TimeActivity xmlns='http://www.intuit.com/sb/cdm/v2'>
<TxnDate>2012-08-30-07:00</TxnDate>
<NameOf>Employee</NameOf>
<Employee>
<EmployeeId>11</EmployeeId>
</Employee>
<CustomerId>2</CustomerId>
<JobId>4</JobId>
<BillableStatus>Billable</BillableStatus>
<HourlyRate>50.0</HourlyRate>
<StartTime>2012-08-30T11:45:00-07:00</StartTime>
<EndTime>2012-08-30T13:15:00-07:00</EndTime>
<Description/>
</TimeActivity>
There should be couple of small changes in the sample request ( We will update the doc )
<?xml version="1.0" encoding="utf-8"?>
<TimeActivity xmlns:ns2="http://www.intuit.com/sb/cdm/qbo" xmlns="http://www.intuit.com/sb/cdm/v2">
<NameOf>Vendor</NameOf>
<Vendor>
<VendorId idDomain="QBO">5</VendorId>
</Vendor>
<CustomerId>2</CustomerId>
<ItemId>3</ItemId>
<Taxable>true</Taxable>
<HourlyRate>10.5</HourlyRate>
<BillableStatus>Billable</BillableStatus>
<Hours>10</Hours>
<Minutes>5</Minutes>
<Description>This is a Description</Description>
</TimeActivity>
First replace all the reference values with the same of your test data.
For ex - VendorId, Class, Item and Customer
There are two bugs in the sample request.
1. There should be a space between 'VendorId' and 'idDomain' ( Ref -5th line of the req )
2. According to the doc, " Either method of indicating duration can be entered, but not both. Hours/Minutes OR StartTime/EndTime is required."
So plz remove any one of these. ( I've removed StartTime/EndTime )
Otherwise you'll get the error which you have mentioned above.
That is - Response code 400, Error msg - TIME_ACTIVITY_MULTIPLE_DURATION_TYPES_PRESENT
Please let us know if the above changes work for you.
I tried the same XML in Api Explorer. It worked fine for me. PFB snapshot. Please check if you are facing any encoding issue.
Please let me know if it works for you.

how to insert xaction in CDE dashboard

I am using a CDE plugin in pentaho
I am creating a dashboard containing the result of a xaction in a CDE dashboard
can anybody plz tell me how can i conclude xaction in a CDE dashboard
i am including the xaction as a component , but in the preview there is no result as the xaction produces
the components asks for
name
path
action
solution
what should i enter here
here is my xaction
<?xml version="1.0" encoding="UTF-8"?>
<action-sequence>
<title>nov12xaction</title>
<version>1</version>
<logging-level>ERROR</logging-level>
<documentation>
<author>hussain</author>
<description>Empty blank action sequence document</description>
<help/>
<result-type>text</result-type>
<icon/>
</documentation>
<inputs/>
<outputs>
<query_result type="result-set"/>
</outputs>
<resources/>
<actions>
<action-definition>
<component-name>SQLLookupRule</component-name>
<action-type>Relational</action-type>
<action-outputs>
<query-result type="result-set" mapping="query_result"/>
</action-outputs>
<component-definition>
<query><![CDATA[select * from student where pointer > 30;]]></query>
<live><![CDATA[true]]></live>
<driver><![CDATA[com.jdbc.odbc.Driver]]></driver>
<connection><![CDATA[jdbc:mysql://localhost:3306/xactionstudy]]></connection>
<user-id><![CDATA[root]]></user-id>
<password><![CDATA[root]]></password>
</component-definition>
</action-definition>
</actions>
</action-sequence>
i think i got the correct solution
i tried to crete the URl for the browser
so i set
solution=steel-wheels&
path=dashboards&
action=nov12xaction.xaction // or whatever the action name is
and it simply works
put your xaction into CDE dashboard folder and use execute xaction component

How to obtain return codes for ant tasks in a ant script?

I am working with mqfte. Is it possible to capture the return code of all the ant tasks i have used in a ant script?
Within the FTE Ant job, each step will have a SuccessRC specification. In order to proceed past that step, the return code must be successful. If the job fails, then the failing return code will be reported in the log entry.
For example, in the following job the pre-source call encrypts a file prior to transfer and a post-source call deletes the plaintext version of the file if the transfer is successful. By definition, if the transfer fails, the non-zero return code will be reported in the FTE log. Otherwise the calls succeeded and we know that the return codes were all zero.
<request version="4.00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
<managedTransfer>
<originator>
<hostName>${hostName}</hostName>
<userID>${userID}</userID>
</originator>
<sourceAgent QMgr="${sourceQM}" agent="${sourceAgent}"/>
<destinationAgent QMgr="${destQM}" agent="${destAgent}"/>
<transferSet priority="5">
<metaDataSet>
<metaData key="Cost_Center">1234</metaData>
</metaDataSet>
<preSourceCall>
<command type="executable" name="/usr/bin/gpg" successRC="0">
<argument>-es</argument>
<argument>--batch</argument>
<argument>-r</argument>
<argument>${signame}</argument>
<argument>--output</argument>
<argument>${FILEPATH}.gpg</argument>
<argument>--passphrase-file</argument>
<argument>${pwdfile}</argument>
<argument>${FILEPATH}</argument>
</command>
</preSourceCall>
<postSourceCall>
<command type="executable" name="/var/IBM/WMQFTE/user/ant/rm" successRC="0">
<argument>${FILEPATH}</argument>
</command>
</postSourceCall>
<item checksumMethod="MD5" mode="binary">
<source disposition="delete" recursive="false">
<file>${FILEPATH}.gpg</file>
</source>
<destination exist="overwrite" type="directory">
<file>${targetDir}</file>
</destination>
</item>
</transferSet>
<job>
<name>gpge.xml</name>
</job>
</managedTransfer>
</request>