Wednesday, August 11, 2010

iPhone Client Update


ClickMobile client for the Windows platform is developed for long time already, and therefor includes many features. In this update we can see that the client's Calendar list is complete with support for coloring, icons, list of properties, etc.

When selecting task from the list, the client needs to follow the form configuration from the server. The editor is built for Windows platform, but in general we can look on it as list of Tabs that each is a list of Fields or Properties.


The iPhone client is showing the first Tab, while the other Tabs are listed as sections below.

Selecting the second Tab is natural for iPhone users, while following the separation made by the administrator, which configure the form.

Still there is more work, but it looks like it getting some shape.

Monday, July 12, 2010

Sending And Receiving SXP from iPhone

When developing client application you always need to learn the server API. In the case of ClickMobile, there is more than few Special SXP calls to learn.

The beauty of ClickMobile is in the details (as Prof. Ben-Bassat always said: the strength of Service Optimization is in the details, years of experience in this field made the solution of ClickSoftware so comprehensive).

The Windows CE mobile client is using SQL Server CE to synchronize local database with the server database (SQL Server CE? not with iPhone). But the way the client sends SXP calls and receives the response is another layer on top of that.

The server maintains two tables for requests and responses. The client pull and push records from and to these tables using synchronization of local replica. The server scans the requests table using background process (agent), which performs a scan every few seconds (configurable interval). For each processed request it's generates response record. But the server also generates response records as a result of Server Events (like Task Update, etc.).

So, to send and receive SXP, like ClickMobile, from platform that cannot use SQL Server CE, you need to: (A) Create replacement for SQL Server CE database synchronization. (B) Insert special ClickMobile SXP calls into special request records. (C) Synchronize the requests table. (D) Constantly synchronize the responses table. (E) Get the SXP results from the response records. (F) Clean used response records (or let the server do so after few days).

Important note regarding The requests and responses tables: each user should only use records that aimed to him. Synchronizing records of all clients is costly and unnecessary.

OK, so now I can tell you that I'm already passed this stage. Now let's connect the background service with the UI...

Saturday, June 5, 2010

What iPad Can Do For ClickSchedule?

While the iPad sales are going great guns with consumers, the usage of such delicate device in the field as enterprise client is questionable. The first thing I got on my mind was to play with the device and decide if it's good as ClickSchedule client (ClickMobile client). After seeing how fragile the device is, I'm not sure if it worth the effort developing for. Maybe a ClickAnalyze client is more appropriate for the iPad.

For sure the iPhone is still a great device for ClickMobile. We just need to wait a litle bit more (for Monday's keynote) and then see what news Apple going to bring to the enterprise.

Tuesday, May 11, 2010

iPad Wi-Fi+3G glass is cracking [u]

While learning more about my new iPad, I found a scratch on the glass after less than a week. I was not sure how, but I blamed myself for the first scratch. Today, I found another three scratches. I looked carefully and found that my screen is cracking. We'll see what Apple will do with it in couple days. In the attached picture, I marked the visible scratches with pairs of arrows. The flash shows the cracks that are not visible in room light (the screen is very clean, but the flash just pop any crack and dust).
Update: Apple was very kind to replace the iPad with a new one. It took me 10 minutes at the local Apple store and I'm now posting from a new iPad.

Saturday, April 24, 2010

ClickAnalyze Insight Agent for all Nightly Reports

You have just configured new ClickSchedule report using the Service Optimization Administration console. Now you need to configure an agent to run the report once a night.

I strongly suggest to use the ClickAnalyze Insight agent for any nightly report, with the cost of the new time table needed for the agent. You can create such table using the following SQL:
create table W6RP_MY_REPORT_TIME(PK_Date date not null,
Date_Name varchar2(50) null,
constraint PK_MY_REPORT_TIME primary key (PK_Date)
using index tablespace USERS) tablespace USERS;
Populate the table with single record for two days ago:
TimeCmd "Provider=OraOLEDB.Oracle;User Id=W6ADMIN;
Password=****;Data Source=CAR_ALIAS"
W6RP_MY_REPORT_TIME en-US -2 -2
Create foreign key relation between the tables:
alter table W6RP_MY_REPORT
add constraint FK_MY_REPORT1 foreign key (Time_Start)
references W6RP_MY_REPORT_TIME;
Now just set a new ClickAnalyze Insight agent setting to process the time table and the report:
Owner:        [Application]
Category:     Agent
Sub Category: Insight
Name:         My Report
Body:
<InsightAgent>
  <Connections>
    <Connection>
      <TargetConnection
        Key="-1">(local)</TargetConnection>
      <TimeTable>W6RP_MY_REPORT_TIME</TimeTable>
      <Culture>en-US</Culture>
      <RelativeTo>-1</RelativeTo>
    </Connection>
  </Connections>
  <Reports>
    <Report>
      <Name>My Report</Name>
    </Report>
  </Reports>
  <Notifications>
    <Notification Active="true">
      <Type>Email</Type>
      <From>click@acme.com</From>
      <To>
        <Recipient>dispatcher@acme.com</Recipient>
      </To>
      <Subject>My Report Execution Result</Subject>
      <Importance>2</Importance>
    </Notification>
  </Notifications>
</InsightAgent>
What you will get is the better error handling of the agent, which rollback partial processing. You can add multiple reports to run in sequence. Just remember, one error will rollback all the reports.

After error, you can try and fix the problem and rerun the agent. If the agent run successfully, then rerun is not going to do any processing, since the time table is already with the processing date.

Thursday, April 8, 2010

Mobile iPhone Client and Multitasking

As we all know, Apple previewed today some features of the next major upgrade for the iPhone OS. Especially important for me is the multitasking implementation (we all know it was just matter of developing the correct UI and waiting for 1GHz CPU, which probably be in the next generation iPhone hardware).

While still offering the push notifications option, it is much easier to implement a thread that polls the remote server. I will have to check carefully, what is allowed under the updated platform.

I feel that I started the development at the right time, when the OS is maturing. I will probably aim to the end of 2010, so I can benefit from the iPhone OS 4 improvements.

Wednesday, March 17, 2010

Short iPhone Client Update

I have a WebService working on the server side. I have a WebServiceClient working asynchronously on the iPhone. Still need to finish the SQLite code for the client side database. I have initial UI components. Also, adding some barcode reading code, just in case ;-)
 
HTML Hit Counter