Friday, December 28, 2012

Quickstart for Building Mobile eCommerce apps


So you want to build a mobile eCommerce app or maybe you just want one built for you? You want this in part because you have long known that Ecommerce is booming and a brick-and-mortar approach may simply not be enough to keep your business afloat. A Harris poll last November found that 43% of the 2249 US adults surveyed had engaged in "showrooming," a practice where the consumer examines merchandise in a brick-and-mortar store but then later buys it online.

Today online shopping is the iceberg and mobile shopping is the tip. But all indications are that the iceberg may invert with increasing proportions of ecommerce transactions taking place with mobile devices as desktop computing devices continue to shrink in overall market share. Another survey by PriceGrabber of 2469 US adults in September found that in 2012, six percent of holiday purchases made by the average consumer will be made via a mobile device. You are likely reading this because you are already aware of these trends and you've been tasked as an IT department to do something about it. The IT departments of medium sized businesses are particularly challenged because their companies are too big to use off-the-shelf solutions and too small to afford extensive custom programming efforts.

For developers building mobile ecommerce apps for a variety of mobile operating systems and devices and then integrating them to Oracle JD Edwards, PeopleSoft, E-Business Suite, Microsoft Dynamics, SAP or other backend ERP systems, a number of development issues should be considered.

First, the relevant eCommerce data structures for the mobile commerce platform must be analyzed. Some data requires synchronization while other data may simply require a push or pull approach per transaction. If you are building your own eCommerce application, you will need to develop a database architecture. Examples can be found on the web ranging from this very simple training example  to this simple and free MySQL table for eCommerce to more proprietary real world table structures for applications like the Magento eCommerce platform. 

Second, you need to assess how the data you choose in your architecture above relates to the data and processes in your ERP system, such as in this example JD Edwards data dictionary.  Data transformations are likely needed when mapping data between mobile devices, eCommerce platforms and ERP systems.

Fortunately, all of this can be simplified by using the Magic xpi Data Mapper 

From a functional standpoint it becomes important to assess what sorts of unique mobile commerce shopping features you want to offer your users. For example, one of the trends in mobile shopping sites is to highlight "local deals." This requires integration with third party ecommerce databases and an awareness through the mobile device's GPS of the users' location. Other goals may include a recommendation engine, reviews, bar code scanning for those engaged in "showrooming" and much more. My advice is to include one trendy feature so that your mobile store introduction has some sizzle but don’t get bogged down in developing too many trendy bells and whistles, because many are going to fade from popularity as quickly as they are innovated.

In terms of the user interface, Magic xpa will make it very easy to create native mobile apps that are tailored in their look and feel for your various mobile platforms: iPhone, Android, BlackBerry, etc. The Magic RIA client for iOS™, Android™, BlackBerry® and Windows Mobile® is a native operating system (OS) application for any of these devices, implementing the Magic RIA client protocol. Using the Magic RIA client for the different mobile devices, developers can deploy highly interactive enterprise RIA applications on the various mobile devices.

Remember, Magic xpa Application Platform will take care of the heavy lifting when it comes to the database, business logic and user interface layers and allow you to create tailored native mobile apps for the iOS, Android, BlackBerry, etc. In addition the Magic xpi Integration Platform automates business process integration between your Magic xpa mobile apps, your online eCommerce platform (such as Magento, Shopatron, Demandware, Oracle ATG, IBM WebSphere Commerce, Digital River, hybris, Intershop, RedPrairie, Micros-Retail, SAP E-Commerce, etc.) and your ERP or accounting system. These Magic platforms form an ideal combination for developing and integrating mobile commerce apps. 

I've also noted a trend lately among these medium sized IT departments: they want to choose the ERP, eCommerce and mobile development platforms used, but they often don’t want to do all (or any) of the work themselves. That's why vendors like Magic Software offer professional services for mobile app development, including Mobile ecommerce apps. Feel free to contact us if you’re in the market.

Thursday, December 27, 2012

Mobile App Development: 30 Days to App


Just when you thought the hype cycle for mobile apps had peaked, James Johnson reports that the super cool ecommerce platform “Fab managed to pull 56 percent of its Christmas day US revenue from mobile apps, a new single-day record for the e-commerce platform with a focus on designer items. The company also announced that its mobile apps accounted for 40 percent of European revenue on Christmas day, another Fab record.

Nevertheless, building mobile apps successfully requires an attention to a broad spectrum of needs within your business and not simply a single function. While it is true that mobile apps need to be narrowly focused, the portfolio of mobile apps in your company needs to address a broad range of requirements.

Dan Woods reports in Forbes that building mobile apps requires endurance and stick-to-it-iveness.  “Mobility is really a continuing program for addressing many needs over multiple years, typically with multiple apps.”

And despite the fact that experts are touting gamification, independent university research has determined that usable information and functionality trump entertainment and gaming value.
Indiana University reports that: “The study confirms that using branded mobile phone apps  increases a consumer's general interest in product categories and improves the attitude they may have toward the sponsoring brand. The researchers also found that mobile apps which are informational in nature or utilitarian were more likely to engage users than those where the app focused on entertainment or gaming.” This research finding may surprise people. But if you understand baseball, then you can understand this statistic. If the average hitter swings for the fences in every at bat, they are going to fail. It's easy to strike out when you are trying to force a home run. Informational and utilitarian apps are less exciting, but just like a single in baseball, they are fundamental to success. 

So if you are an IT department with a need to support a broad portfolio of mobile apps that provide usable functionality to business users, partners and customers, what can you do? That broad functionality already exists in your ERP, CRM and other enterprise software systems. How can you expose that business functionality reliably and securely in mobile apps that are flexible enough to grow with your business and your customers changing needs?

The Magic xpa Application Platform and Magic xpi Integration Platform work in tandem to provide a solution for enterprise mobility by allowing you to quickly generate mobile apps that integrate to enterprise software systems, ecommerce platforms and cloud apps by managing everything from API triggers and orchestration to cross-platform native mobile client interfaces. We offer our customers the laundry list of mobile apps below with a templated approach that allows us to promise 30 days to app from the time we have your spec, usually much faster. Not a generic app, but one that is customized and integrated. 

What is needed in every organization is a series of mobile apps that address common business issues and deliver the information and functionality demanded by your users. Magic Software’s application and business integration platforms provide enterprise IT departments the toolsets they need to address enterprise mobility requirements. Many IT departments prefer not to get involved in developing and integrating their own mobile apps, however. For these IT departments, the Magic Professional Services team can offer flexible and comprehensive professional services for mobile apps development.

As we talk to enterprise IT departments about the apps needed, a series of these mobile apps come to mind:

·         Mobile Commerceapps
·         Mobile StoreLocator apps
·         Mobile ordertracking apps
·         Mobile order tracking and shipment tracking apps
·         Mobile credit status and payments inquiry apps
·         Mobile field service management apps, including:
o   Mobile dispatch apps
o   Mobile routing apps
o   Mobile field service apps
o   Mobile customer service, repair, and technical support knowledge base apps
o   Mobile parts order and sales apps
o   Mobile asset tracking, inventory and management apps
o   Mobile field-based project management apps
·         Mobile inventory management apps
·         Mobile pick and pack apps
·         Mobile shipping apps
·         Mobile Time and Attendance workforce management apps
·         Mobile expense report management apps
·         Mobile workforce, HR and employee benefits apps
·         Mobile executive dashboard apps
·         Mobile approval processes apps
·         Mobile document management apps
·         Mobile purchase requisition and purchase order apps
·         Mobile Service and technical support center management apps

Here in Magic Software Americas, Eyal Karny, vice president of Professional Services explains that: “From the time we have identified the business requirements of a discrete mobile business application, we can build the mobile app, integrate it to back end systems, test it and present it for final user acceptance testing (UAT) quite easily within 30 days and usually much sooner. Mobile app development is ideal for agile and SCRUM development approaches because the apps are relatively narrow in focus. Having a common architecture for back-end integration and cross-platform deployment is amazing.” For additional information download “How to Realize the Vision of Enterprise Mobility.” 

Friday, November 30, 2012

Magic xpa SQL Considerations



OK, let's talk about the doughnut not the hole. Magic xpa supports both implicit and direct SQL. There are a few things you should consider when working with SQL. In general, the task that actually opens a transaction should have at least one table declared from each database that will participate in the transaction. Otherwise, if no table has been declared, when Magic xpa has to open a transaction (either task level or record level), then it will default to a situation where the ISAMTransaction keyword is taken into account. You may not want this, so make sure you declare the needed tables for each database.

When using Magic xpa with implicit SQL, Magic xpa allows you to interact with one or more SQL databases at the same time but still keeps the interaction with the database transparent to the developer. Magic xpa translates the operations and parameters in your task to a SQL statement. This behavior enables the use of a specific gateway that allows Magic xpa to directly interact with each database using the DBMS API. (The Magic xpa gateway list appears in the MAGIC_GATEWAYS section in the Magic.ini file. To define the Magic xpa environment when working with SQL databases, you must know how to define the flags and settings in the Magic.ini file.)

When using Magic xpa with direct SQL statements, Magic xpa allows you to create programs that contain a free SQL statement (ANSI SQL). This statement will be sent directly to the database without Magic xpa checking it. This option allows you to perform database manipulations that are not otherwise supported using the Magic xpa operations or will be performed more efficiently using a direct SQL statement (such as aggregate functions). Keep in mind that in Online tasks, Magic xpa creates a new table that will store the result set of a statement or store procedure. A Create table operation is a "heavy" operation and for this reason, it is not recommended to use Direct SQL tasks frequently in Online mode. 

Tuesday, October 23, 2012

Keep or Toss: Is ActiveX Dead?





Opinion on ActiveX varies. Some say ActiveX is dead, passé, an old technology with no future relevance. Others say that so much has been invested in ActiveX that it is economically infeasible to adapt to newer technologies such as .NET, RIA, JavaScript and HTML5. 

I say that the beauty of the Magic xpa Application Platform is that it is economically feasible to adapt to these newer technologies. And well, yeah, if you don’t want to then you don’t have to because you can wrap your ActiveX.

Having said this, my recommendation is to leave ActiveX behind in favor of new RIA clients. You don’t have to abandon ActiveX, but you should, and you will still be using 100% of your core business application logic.  

Trying to keep ActiveX in today’s modern operating system environments is kind of like trying to preserve a function key interface on an iPhone. Yeah, you could do it by creating graphical representations of F1, F2, F3, F4 and yes the holy F5 key on the touchscreen of the iPhone, but why? 

There is a better future and it’s already here. Reluctance to change is a natural human reaction and it seems to increase in some people as we grow older. But the beauty of our tradition in the Magic community has always been that it is easy to adapt to new technology paradigms with Magic xpa Application Platform. A metadata driven platform makes it easier to transition to the newer fully .NET native Magic xpa Application Platform. 

Because let’s not forget: the road to .NET is Magic!

Thursday, September 27, 2012

Keyboard Shortcuts: Recycling the Zoom Key (F5)


I'm old enough to remember back in the early 1960's when aluminum cans required a can opener to break through the tops. I wasn't allowed to drink much soda in those days, certainly not a cola, those were adult beverages when I was a child, but I managed to figure out how to open the occasional can of Seven Up. When pull top cans were invented, they made things a lot easier, but they added to the litter problem, which our new national consciousness was finally beginning to see as a bad thing. Ultimately, the pop-tab was invented and provided the fastest route to a cold beverage. I like the convenience of pop-tabs and I like keyboard shortcuts too.

When developing an application for the Magic xpa Application Platform, a repository is one of the Magic xpa Studio’s basic screens. Magic xpa projects are often very large, mission-critical applications, so it’s important to keep your work organized. The Studio itself helps you in this, by dividing your work into these repositories: Models (SHIFT+F1), Data(SHIFT+F2), Programs(SHIFT+F3), Help Screens(SHIFT+F4), Rights(SHIFT+F5), Menus(SHIFT+F6), and Components Resource Repository (CRR, which is accessible by SHIFT+F7). 
Each of these Magic xpa repositories are divided into a grid, visually similar to a spreadsheet in that every repository has columns and rows. From certain columns, you can “zoom” to an option list or a details window to select data options. When the insertion point is positioned on a zoomable field, for example, the word ZOOM appears on the message line. Every experienced Magic programmer knows that to zoom, you select the F5 key.
The list of Windows compatible keyboard shortcuts that are available as part of the Magic xpa Application Platform depends on the current development context such as Repository Shortcuts, several types of Form Shortcuts, Open Project Shortcuts, Closed Project Shortcuts and Runtime Shortcuts. Some shortcuts are available in more than one development context. The F5 (Zoom) shortcut is available in numerous contexts, but will behave slightly differently depending upon the current development context.
As an aid in your use of keyboard shortcuts, here is a list of Windows-compatible keyboard combinations per development context for your reference:

Repository Shortcuts

Magic xpa Object
Shortcut
Models
SHIFT+F1
Data
SHIFT+F2
Programs
SHIFT+F3
Help Screens
SHIFT+F4
Rights
SHIFT+F5
Menus
SHIFT+F6
Components
SHIFT+F7
Task Properties
CTRL+P
Data View
CTRL+1
Logic
CTRL+2
Form
CTRL+3
Expression Editor
CTRL+E
Data Sources
CTRL+D
I/O Devices
CTRL+I
Sort
CTRL+T
User Events
CTRL+U
Range/Locate
CTRL+R
SQL Command
CTRL+Q
Application Properties
CTRL+SHIFT+P
Export/Import
CTRL+SHIFT+E
Navigator
ALT+F1
Property Sheet
ALT+F2
Checker Result
ALT+F3
Comments
ALT+F12
Switch Panes
CTRL+TAB
SQL Command
CTRL+Q
Variables
CTRL+V
I/O devices
CTRL+I
User Event
CTRL+K
Range/Locate
CTRL+H
Find Reference
CTRL+F
Find Text
CTRL+SHIFT+F
Locate Row
CTRL+L
Locate Next Row
CTRL+N
Locate Previous Row
CTRL+SHIFT+N
Jump to Row
CTRL+J
Jump to Folder
CTRL+SHIFT+J
Next Header Line
ALT+CTRL+N
Previous Header Line
ALT+CTRL+P
Repeat Entry
CTRL+SHIFT+R
Move Entry
CTRL+SHIFT+M
Overwrite Entry
CTRL+SHIFT+O

Closed Project Shortcuts

The table below lists the key combinations for Studio commands when the Magic xpa project is closed.

Command
Key Combination
Location
Open Project
CTRL+O
File
Exit
ALT+F4
File
Cancel
CTRL+F2
Edit
Undo Editing
ALT+Back
Edit
Cut
CTRL+X
Edit
Copy
CTRL+C
Edit
Paste
CTRL+V
Edit
Create Line
F4

Delete Line
F3

Select All
CTRL+A

Zoom
F5

Wide
F6

Properties
ALT+Enter
Edit
Repeat Entry
CTRL+SHIFT+R
Edit
Move Entry
CTRL+SHIFT+M
Edit
Overwrite Entry
CTRL+SHIFT+O
Edit
Locate Row
CTRL+L
Edit
Locate Next Row
CTRL+SHIFT+L
Edit
Jump to Row
CTRL+J
Edit

Open Project Shortcuts

The table below lists the key combinations for Studio commands when the Magic xpa project is open.

Command
Key Combination
Location
Open Project
CTRL+O
File
Application Properties
CTRL+SHIFT+P
File
Export/Import
CTRL+SHIFT+E
File
Exit
ALT+F4
File
Cancel
CTRL+F2
File
Undo Editing
ALT+Back
Edit
Cut
CTRL+X
Edit
Copy
CTRL+C
Edit
Paste
CTRL+V
Edit
Create Line
F4
Edit
Create Header Line
CTRL+H
Edit
Delete Line
F3
Edit
Enable/Disable Line
CTRL+SHIFT+D (only available from the Logic Editor)
Edit
Select All
CTRL+A
Edit
Zoom
F5
Edit
Wide
F6
Edit
Properties
ALT+ENTER
Edit
Find Reference
CTRL+F
Edit
Find Text
CTRL+SHIFT+F
Edit
Repeat Entry
CTRL+SHIFT+R
Edit
Move Entry
CTRL+SHIFT+M
Edit
Overwrite Entry
CTRL+SHIFT+O
Edit
Locate Row
CTRL+L
Edit
Locate Next Row
CTRL+N
Edit
Locate Previous Row
CTRL+SHIFT+N
Edit
Jump to Row
CTRL+J
Edit
Jump to Folder
CTRL+SHIFT+J
Edit
Next Header Line
ALT+CTRL+N
Edit
Previous Header Line
ALT+CTRL+P
Edit
Goto Match
ALT+CTRL+M
Edit
Edit Node
F2
Edit
Expand Node
+
Edit
Collapse Node
-
Edit
Expand All
CTRL+Plus
Edit
Collapse All
CTRL+Minus
Edit
Next Category
CTRL+Down
Edit
Previous Category
CTRL+Up
Edit
Navigator
ALT+F1
View
Property Sheet
ALT+F2
View
Checker Result
ALT+F3
View
Comments
ALT+F12
View
Switch Panes
CTRL+TAB
View
Show Line Numbers
CTRL+SHIFT+N
View
Models
SHIFT+F1
Project
Data
SHIFT+F2
Project
Programs
SHIFT+F3
Project
Help Screens
SHIFT+F4
Project
Rights
SHIFT+F5
Project
Menus
SHIFT+F6
Project
CRR
SHIFT+F7
Project
Task Properties
CTRL+P
Task
Data View
CTRL+1
Task
Logic
CTRL+2
Task
Forms
CTRL+3
Task
Data Sources
CTRL+D
Task
Expression Editor
CTRL+E
Task
I/O Devices
CTRL+I
Task
Sort
CTRL+T
Task
User Events
CTRL+U
Task
Range/Locate
CTRL+R
Task
SQL Command
CTRL+Q
Task
Check Syntax
F8
Options
Check to End
ALT+F8
Options
Bookmarks
CTRL+SHIFT+B
Options
Comment
F12
Options
Save Program
CTRL+S
Options
Get Definition
F9 (Data repository)
Options
Generate Program
CTRL+G
Options
Generate Form
CTRL+G
Options
Edit Main Form
CTRL+M
Options
Next Checker Message
CTRL+F8
Options
Go to Object*
CTRL+F5
Options
Return from Object*
CTRL+SHIFT+F5
Options
Composite Generator
CTRL+SHIFT+G
Options
Runtime/Continue
F7
Debug
Run in Browser
CTRL+SHIFT+F7 (Lite version)
Debug
Run Project
CTRL+F7
Debug
Break Now
ALT+CTRL+F7
Debug
Step
F10
Debug
Step Into
F11
Debug
Step Out
SHIFT+F11
Debug
Toggle Breakpoint
F9
Debug
Add to Watch
CTRL+F11
Debug
Reset Runtime Engine
CTRL+SHIFT+F9
Debug
Help
F1
Help

General Form Editor Shortcuts

Keyboard shortcuts for forms are listed in the General, Table, Drawing  tables below.

General

Key
When...
Result...
F5
Control is selected
Control properties open
F5
No selection
Form properties open
Click on control

Control properties open. Child controls are also selected.
Click on control
CTRL
Child controls are not selected.
Click on form

Form properties open
Drag a control

Child controls are also selected
SPACE
Control is selected
Control is not selected
ENTER
A Static control is selected
Text entry
ENTER
A Choice control is selected
Moves from choice to choice
Click on choice control
SHIFT
Change layer
Double click on control icon

Control appears in the upper-left corner of the form
ARROWS
Controls are selected and then press ENTER
Moves the selection
ARROWS+SHIFT
Controls are selected and then press ENTER
Sizes the selection
ARROWS
No selection and then press ENTER
Moves the form
ARROWS+SHIFT
No selection and then press ENTER
Sizes the form
TAB

Selects next control
TAB+SHIFT

Selects previous control
HOME

Selects first control
END

Selects last control
CTRL+A
(Also, Edit menu > Select All)
Selects all controls on the form.
When in Edit mode of the Static control, theSelect All option selects the text of the edited control.
Click
On a container control
Selects the container control and all controls attached to it
CTRL+click
On a container control
Selects the container control, but not the controls attached to it. If you use Ctrl+Click and click on several controls one by one, selects several controls that are located on one tab.
This is how you can manipulate (move, delete, change properties) the controls that are attached to one tab.
SHIFT+Click
On a container control
Select just one choice.
This is the mode you want to be in to add fields to one choice.
SHIFT
Dropping a control from the Variable palette
No title appears
Right click

The context menu is displayed

Table Controls

Key
When...
Result...
Click
Dragging the table column
Moves the column divider only, not the controls attached to the column
CTRL+click
Dragging the table column
Adjusts all table columns; moves all the other columns to the right and the attached controls
Click
Dropping a control on a table
Adds a table column after an existing table column
SHIFT+click
Dropping a control on a table
Adds a table column in front of an existing table column
ALT+click
On a column while dragging a control
Places a control on an existing table column
ALT+click
On a column area (park anywhere except for table caption and first row)
Marks a column
TAB
One column is selected
Moves to the next column
ALT+CTRL+click

Selects multiple columns
CTRL+ALT+SHIFT
Clicking on the first and then last column
Selects all columns at once
CTRL+click
Dropping a control on a table
You can drop the control multiple times after an existing table column
CTRL+SHIFT+click
Dropping a control on a table
You can drop the control multiple times before an existing table column
Click
Outside of a control, dragging the rectangular box around all controls
Selects all controls within the area
Click
Dragging column header to new location
Moves the table column

Drawing Controls


The table below lists the key combinations for Form Editor commands. All of these combinations can also be found in the Drawing menu.
Command
Key Combination
Align Left
CTRL+SHIFT+L
Align Right
CTRL+SHIFT+R
Align Top
CTRL+SHIFT+T
Align Bottom
CTRL+SHIFT+B
Horizontal Center
CTRL+SHIFT+H
Vertical Center
CTRL+SHIFT+V
Horizontal Equal Spacing
ALT+CTRL+H
Vertical Equal Spacing
ALT+CTRL+V
Move Forward
CTRL+4
Move Backward
CTRL+5
Send to Back
CTRL+6
Bring Front
CTRL+7
Attach to Table
CTRL+O
Conclude Drawing
F8

Runtime Shortcuts

Magic xpa provides a Windows compliant keyboard mapping scheme. The table below lists the key combinations for Runtime commands.
Command
Key Combination
Location
Cancel
CTRL+F2
Edit
Undo Editing
ALT+F4
Edit
Cut
CTRL+X
Edit
Copy
CTRL+C
Edit
Paste
CTRL+V
Edit
Create Line
F4
Edit
Delete Line
F3
Edit
Select All
CTRL+A
Edit
Zoom
F5
Edit
Wide
F6
Edit
Ditto
CTRL+D
Edit
Set to Null
CTRL+U
Edit
Modify Records
CTRL+M
Options
Create Records
CTRL+E
Options
Query Records
CTRL+Q
Options
Locate
CTRL+L
Options
Locate Next
CTRL+SHIFT+L
Options
Range of Records
CTRL+R
Options
View by Key
CTRL+K
Options
Sort Records
CTRL+S
Options
Redirect File
CTRL+I
Options
Print Data
CTRL+G
Options