|
|
Choosing A Webhost: |
Re: Passing dates from Perl: msg#00011cms.opengroupware.xmlrpc.devel
> I am writing a small Perl script to become familiar with the XML-RPC > API. I am using the RPC::XML::Client package of Perl to get a > connection to the OGo server. > Now, I want to create a task programmatically. But contrary to the > documentation, the xmlrpcd does not seem to accept dates in the format > %Y%m%dT%H%M%S. > In xmlrpcd.log I find the following: > Jun 27 12:32:04 ogo-xmlrpcd-1.1 [3480]: [WARN] <0x08316CE4[LSNewJobCommand]> > date command argument 'startDate' is not a date (NSShortInline8BitString): > 20060722T10:30:00 > Jun 27 12:32:04 ogo-xmlrpcd-1.1 [3480]: [ERROR] <0x08316CE4[LSNewJobCommand]> > Could not convert key startDate (NSShortInline8BitString:20060722T10:30:00) > to date, format is %Y-%m-%d %H:%M:%S > When I try the format %Y-%m-%d %H:%M:%S, I still get the warning in > the logs and an error on the client side, but the task is created all > right. I think it accepts standard dates as in PHP I can call XML_RPC_iso8601_encode($value) to encode the date and in .NET using the CookComputing XML-RPC assembly DateTime types are automatically formatted and submitted without errors. <aside>Of course, XML-RPC is a "standard" only in the loosest definition of the word, it is really more like a "consensus". In some aspects more like a "train wreck". The 'standard' document is really poorly done and leaves a whole heck of allot open to interpretation.</aside> > Can someone tell me more about this issue? Should I use %Y-%m-%d > %H:%M:%S and ignore the warning, i.e. did the date format change since > the documentation was written (xml-rpc-de.pdf from around 2003)? It might be useful to look at the code of POGI (PHP) or OGoMojo (C#), as I've gotten most things to work in both of those. There are lots of 'caveats and addendums' that xml-rpc-de doesn't include. > Or > is it that the xmlrpcd somehow does not properly convert date strings > into date objects in my setup? > The server is runing OGo-1.1.3 with sope-4.5.6. An insertJob call on-the-wire looks like ------------------ Content-Type: text/xml User-Agent: XML-RPC.NET Authorization: Basic ******************** Content-Length: 24391 Connection: keep-alive Host: gourd-amber <?xml version="1.0"?> <methodCall> <methodName>person.insertJob</methodName> <params> <param> <value> <struct> <member> <name>owner</name> <value> <struct> <member> <name>id</name> <value> <string>skyrix://gourd-amber.morrison.iserv.net/morrisonOGo/10000</string> </value> </member> <member> <name>login</name> <value> <string>ogo</string> </value> </member> </struct> </value> </member> <member> <name>url</name> <value> <string>http://www.whitemice.org</string> </value> </member> <member> <name>login</name> <value> <string>adam</string> </value> </member> <member> <name>gender</name> <value> <string>male</string> </value> </member> <member> <name>isComplete</name> <value> <boolean>1</boolean> </value> </member> <member> <name>addresses</name> <value> <struct> <member> <name>mailing</name> <value> <struct> <member> <name>country</name> <value> <string>USA</string> </value> </member> <member> <name>type</name> <value> <string>mailing</string> </value> </member> <member> <name>state</name> <value> <string>MI</string> </value> </member> <member> <name>name1</name> <value> <string>*********************</string> </value> </member> <member> <name>street</name> <value> <string>*********************</string> </value> </member> <member> <name>zip</name> <value> <string>*********************</string> </value> </member> <member> <name>id</name> <value> <string>skyrix://gourd-amber.morrison.iserv.net/morrisonOGo/10140</string> </value> </member> <member> <name>city</name> <value> <string>*********************</string> </value> </member> <member> <name>name2</name> <value> <string>CIS/IT Dept.</string> </value> </member> <member> <name>name3</name> <value> <string>ATTN: Adam Tauno Williams</string> </value> </member> </struct> </value> </member> <member> <name>private</name> <value> <struct> <member> <name>id</name> <value> <string>skyrix://gourd-amber.morrison.iserv.net/morrisonOGo/10130</string> </value> </member> <member> <name>city</name> <value> <string>Grand Rapids</string> </value> </member> <member> <name>name1</name> <value> <string>Adam Tauno Williams</string> </value> </member> <member> <name>country</name> <value> <string>USA</string> </value> </member> <member> <name>zip</name> <value> <string>*********************</string> </value> </member> <member> <name>street</name> <value> <string>*********************</string> </value> </member> <member> <name>state</name> <value> <string>MI</string> </value> </member> <member> <name>type</name> <value> <string>private</string> </value> </member> </struct> </value> </member> <member> <name>location</name> <value> <struct> <member> <name>country</name> <value> <string>USA</string> </value> </member> <member> <name>type</name> <value> <string>location</string> </value> </member> <member> <name>state</name> <value> <string>MI</string> </value> </member> <member> <name>name1</name> <value> <string>Morrison Industrial Equipment</string> </value> </member> <member> <name>street</name> <value> <string>*********************</string> </value> </member> <member> <name>zip</name> <value> <string>*********************</string> </value> </member> <member> <name>id</name> <value> <string>skyrix://gourd-amber.morrison.iserv.net/morrisonOGo/10150</string> </value> </member> <member> <name>city</name> <value> <string>Grand Rapids</string> </value> </member> <member> <name>name2</name> <value> <string>CIS/IT Dept.</string> </value> </member> <member> <name>name3</name> <value> <string>ATTN: Adam Tauno Williams</string> </value> </member> </struct> </value> </member> </struct> </value> </member> <member> <name>keywords</name> <value> <string /> </value> </member> <member> <name>extendedKeys</name> <value> <array> <data> <value> <string>email1</string> </value> <value> <string>email2</string> </value> <value> <string>callfrequency</string> </value> <value> <string>division</string> </value> <value> <string>email3</string> </value> <value> <string>headboy</string> </value> <value> <string>job_title</string> </value> <value> <string>mailmktcode</string> </value> <value> <string>other_title1</string> </value> <value> <string>other_title2</string> </value> <value> <string>salesperson</string> </value> <value> <string>territory</string> </value> </data> </array> </value> </member> <member> <name>birthday</name> <value> <dateTime.iso8601>19271206T05:00:00</dateTime.iso8601> </value> </member> <member> <name>number</name> <value> <string>OGo10100</string> </value> </member> <member> <name>objectVersion</name> <value> <i4>183</i4> </value> </member> <member> <name>comment</name> <value> <string>This dude rocks!</string> </value> </member> <member> <name>firstname</name> <value> <string>Adam</string> </value> </member> <member> <name>phoneTypes</name> <value> <array> <data> <value> <string>01_tel</string> </value> <value> <string>02_tel</string> </value> <value> <string>03_tel_funk</string> </value> <value> <string>05_tel_private</string> </value> <value> <string>10_fax</string> </value> <value> <string>15_fax_private</string> </value> </data> </array> </value> </member> <member> <name>id</name> <value> <string>skyrix://gourd-amber.morrison.iserv.net/morrisonOGo/10100</string> </value> </member> <member> <name>isAccount</name> <value> <boolean>1</boolean> </value> </member> <member> <name>extendedAttrs</name> <value> <struct> <member> <name>email1</name> <value> <string>adam@xxxxxxxxxxxxxxxx</string> </value> </member> <member> <name>headboy</name> <value> <string>no</string> </value> </member> <member> <name>email3</name> <value> <string>awilliam@xxxxxxxx</string> </value> </member> <member> <name>email2</name> <value> <string>awilliam@xxxxxxxxxxxxx</string> </value> </member> <member> <name>salesperson</name> <value> <string>none</string> </value> </member> <member> <name>territory</name> <value> <string>none</string> </value> </member> <member> <name>lastChanged</name> <value> <dateTime.iso8601>20031128T12:17:25</dateTime.iso8601> </value> </member> <member> <name>job_title</name> <value> <string>System and Network Administrator</string> </value> </member> </struct> </value> </member> <member> <name>phones</name> <value> <struct> <member> <name>03_tel_funk</name> <value> <struct> <member> <name>telephoneId</name> <value> <i4>10180</i4> </value> </member> <member> <name>info</name> <value> <string /> </value> </member> <member> <name>number</name> <value> <string>****************</string> </value> </member> <member> <name>type</name> <value> <string>03_tel_funk</string> </value> </member> </struct> </value> </member> <member> <name>01_tel</name> <value> <struct> <member> <name>telephoneId</name> <value> <i4>10160</i4> </value> </member> <member> <name>info</name> <value> <string /> </value> </member> <member> <name>number</name> <value> <string>****************</string> </value> </member> <member> <name>type</name> <value> <string>01_tel</string> </value> </member> </struct> </value> </member> <member> <name>15_fax_private</name> <value> <struct> <member> <name>telephoneId</name> <value> <i4>10210</i4> </value> </member> <member> <name>info</name> <value> <string /> </value> </member> <member> <name>number</name> <value> <string /> </value> </member> <member> <name>type</name> <value> <string>15_fax_private</string> </value> </member> </struct> </value> </member> <member> <name>10_fax</name> <value> <struct> <member> <name>telephoneId</name> <value> <i4>10200</i4> </value> </member> <member> <name>info</name> <value> <string /> </value> </member> <member> <name>number</name> <value> <string>****************</string> </value> </member> <member> <name>type</name> <value> <string>10_fax</string> </value> </member> </struct> </value> </member> <member> <name>02_tel</name> <value> <struct> <member> <name>telephoneId</name> <value> <i4>10170</i4> </value> </member> <member> <name>info</name> <value> <string /> </value> </member> <member> <name>number</name> <value> <string /> </value> </member> <member> <name>type</name> <value> <string>02_tel</string> </value> </member> </struct> </value> </member> <member> <name>05_tel_private</name> <value> <struct> <member> <name>telephoneId</name> <value> <i4>10190</i4> </value> </member> <member> <name>info</name> <value> <string /> </value> </member> <member> <name>number</name> <value> <string /> </value> </member> <member> <name>type</name> <value> <string>05_tel_private</string> </value> </member> </struct> </value> </member> </struct> </value> </member> <member> <name>isPrivate</name> <value> <boolean>0</boolean> </value> </member> <member> <name>name</name> <value> <string>Williams</string> </value> </member> <member> <name>degree</name> <value> <string>UNIX System Administration</string> </value> </member> <member> <name>nickname</name> <value> <string>ATW</string> </value> </member> <member> <name>middlename</name> <value> <string>Tauno</string> </value> </member> </struct> </value> </param> <param> <value> <struct> <member> <name>associatedContacts</name> <value> <string>Associated Contacts</string> </value> </member> <member> <name>totalWork</name> <value> <i4>75</i4> </value> </member> <member> <name>actualWork</name> <value> <i4>50</i4> </value> </member> <member> <name>executor</name> <value> <struct> <member> <name>id</name> <value> <string>skyrix://gourd-amber.morrison.iserv.net/morrisonOGo/10100</string> </value> </member> <member> <name>login</name> <value> <string>adam</string> </value> </member> </struct> </value> </member> <member> <name>creator</name> <value> <struct> <member> <name>id</name> <value> <string>skyrix://gourd-amber.morrison.iserv.net/morrisonOGo/10100</string> </value> </member> <member> <name>login</name> <value> <string>adam</string> </value> </member> </struct> </value> </member> <member> <name>priority</name> <value> <i4>1</i4> </value> </member> <member> <name>percentComplete</name> <value> <i4>25</i4> </value> </member> <member> <name>keywords</name> <value> <string>mogi insertJob</string> </value> </member> <member> <name>sensitivity</name> <value> <i4>3</i4> </value> </member> <member> <name>associatedCompanies</name> <value> <string>Associated Companies</string> </value> </member> <member> <name>accountingInfo</name> <value> <string>Accounting Info</string> </value> </member> <member> <name>startDate</name> <value> <dateTime.iso8601>20060627T00:00:00</dateTime.iso8601> </value> </member> <member> <name>name</name> <value> <string>TEST JOB</string> </value> </member> <member> <name>endDate</name> <value> <dateTime.iso8601>20060704T00:00:00</dateTime.iso8601> </value> </member> </struct> </value> </param> </params> </methodCall> -- OpenGroupware.org XML-RPC xmlrpc@xxxxxxxxxxxxxxxxx http://mail.opengroupware.org/mailman/listinfo/xmlrpc
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: Passing dates from Perl, Helge Hess |
|---|---|
| Next by Date: | Re: Passing dates from Perl, alex . lists |
| Previous by Thread: | Re: Passing dates from Perl, alex . lists |
| Next by Thread: | Creating Team Tasks, alex . lists |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |