Sunday, December 23, 2012

What is JD Edwards EnterpriseOne (ERP Question)

JD Edwards EnterpriseOne:

History & Introduction :

In June 2003, the JD Edwards board agreed to an offer in which PeopleSoft, a former competitor of JD Edwards, would acquire JD Edwards. The takeover was completed in July. OneWorld was added to PeopleSoft’s software line, along with PeopleSoft's flagship product Enterprise, and was renamed EnterpriseOne.

Within days of the PeopleSoft announcement, Oracle Corporation mounted a hostile takeover bid of PeopleSoft. Although the first attempts to purchase the company were rebuffed by the PeopleSoft board of directors, by December 2004 the board decided to accept Oracle's offer. The final purchase went through in January 2005; Oracle now owned both PeopleSoft and JD Edwards. Most JD Edwards customers, employees, and industry analysts predicted Oracle would kill the JD Edwards products. However, Oracle saw a position for JDE in the medium-sized company space that was not filled with either its e-Business Suite or its newly acquired PeopleSoft Enterprise product.

Oracle's JD Edwards EnterpriseOne is an integrated applications suite of comprehensive enterprise resource planning software that combines business value, standards-based technology, and deep industry experience into a business solution with a low total cost of ownership. EnterpriseOne is the first ERP solution to run all applications on Apple iPad.

Only JD Edwards EnterpriseOne offers more choice of databases, operating systems, and hardware so you can build and expand your IT solution to meet business requirements. JD Edwards delivers over 80 application modules to support a diverse set of business processes and key industry solutions such as Consumer Package Goods, Manufacturing, Asset Intensive, and Projects and Services.

JD Edwards

Services :

Financial Management

Having the right financial foundation for your organization is key when you need to account for every penny that comes in or goes out—in every currency, in every country. Oracle's JD Edwards EnterpriseOne financial management solutions can help you respond more quickly to your changing environment, streamline your financial operations, and improve the accuracy of your financial reporting.

  1. Accounts Payable
  2. Accounts Receivable
  3. Advanced Cost Accounting
  4. Expense Management
  5. Financial Management and Compliance Console 
  6. Fixed Asset Accounting 
  7. General Ledger

Project Management

Take control and proactively manage project costs and billing, from conception through completion with Oracle's JD Edwards EnterpriseOne project management applications.

  1. Contract and Service Billing
  2. Project and Government Contract
  3. Accounting Project Costing

Asset Lifecycle Management

Oracle's JD Edwards EnterpriseOne Asset Lifecycle Management solution helps drive greater value from your assets, whether they are plants, facilities, or equipment. From capital planning and budgeting, to procurement and operations, to maintenance and repair, JD Edwards EnterpriseOne Asset Lifecycle Management can maximize profitability and return on investment across the entire asset lifecycle.

  1. Capital Asset Management
  2. Condition-Based Maintenance
  3. Equipment Cost Analysis
  4. Resource Assignments

Order Management

Oracle's JD Edwards EnterpriseOne Order Management enables you to streamline order processing and maintain visibility and control of order tracking throughout the order lifecycle.
  1. Advanced Pricing
  2. Agreement Management
  3. Apparel Management
  4. Configurator
  5. Fulfillment Management
  6. Demand Scheduling Execution
  7. Product Variants
[[article written by Hardik Thaker]]

Friday, December 21, 2012

Using Custom DialogFragments Tutorial


Using DialogFragments [ I am sharing Android Dev Post with you ]

Honeycomb introduced Fragments to support reusing portions of UI and logic across multiple activities in an app. In parallel, the showDialog / dismissDialog methods in Activity are being deprecated in favor of DialogFragments.


In this post, I’ll show how to use DialogFragments with the v4 support library (for backward compatibility on pre-Honeycomb devices) to show a simple edit dialog and return a result to the calling Activity using an interface. For design guidelines around Dialogs, see the Android Design site.



The Layout

Here’s the layout for the dialog in a file named fragment_edit_name.xml.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/edit_name"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:layout_gravity="center" android:orientation="vertical"  >

    <TextView
        android:id="@+id/lbl_your_name" android:text="Your name" 
        android:layout_width="wrap_content" android:layout_height="wrap_content" />
      
    <EditText
        android:id="@+id/txt_your_name"
        android:layout_width="match_parent"  android:layout_height="wrap_content" 
        android:inputType=”text”
        android:imeOptions="actionDone" />
</LinearLayout>
Note the use of two optional attributes. In conjunction with android:inputType=”text”,android:imeOptions=”actionDone” configures the soft keyboard to show a Done key in place of the Enter key.


The Dialog Code

The dialog extends DialogFragment, and since we want backward compatibility, we’ll import it from the v4 support library. (To add the support library to an Eclipse project, right-click on the project and choose Android Tools | Add Support Library...).
import android.support.v4.app.DialogFragment;
// ...
public class EditNameDialog extends DialogFragment {

    private EditText mEditText;

    public EditNameDialog() {
        // Empty constructor required for DialogFragment
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_edit_name, container);
        mEditText = (EditText) view.findViewById(R.id.txt_your_name);
        getDialog().setTitle("Hello");

        return view;
    }
}
The dialog extends DialogFragment and includes the required empty constructor. Fragments implement theonCreateView() method to actually load the view using the provided LayoutInflater.

Showing the Dialog

Now we need some code in our Activity to show the dialog. Here is a simple example that immediately shows the EditNameDialog to enter the user’s name. On completion, it shows a Toast with the entered text.
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
// ...
public class FragmentDialogDemo extends FragmentActivity implements EditNameDialogListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        showEditDialog();
    }

    private void showEditDialog() {
        FragmentManager fm = getSupportFragmentManager();
        EditNameDialog editNameDialog = new EditNameDialog();
        editNameDialog.show(fm, "fragment_edit_name");
    }

    @Override
    public void onFinishEditDialog(String inputText) {
        Toast.makeText(this, "Hi, " + inputText, Toast.LENGTH_SHORT).show();
    }
}
There are a few things to notice here. First, because we’re using the support library for backward compatibility with the Fragment API, our Activity extends FragmentActivity from the support library. Because we’re using the support library, we callgetSupportFragmentManager() instead of getFragmentManager().
After loading the initial view, the activity immediately shows the EditNameDialog by calling its show() method. This allows the DialogFragment to ensure that what is happening with the Dialog and Fragment states remains consistent. By default, the back button will dismiss the dialog without any additional code.

Using the Dialog

Next, let’s enhance EditNameDialog so it can return a result string to the Activity.
import android.support.v4.app.DialogFragment;
// ...
public class EditNameDialog extends DialogFragment implements OnEditorActionListener {

    public interface EditNameDialogListener {
        void onFinishEditDialog(String inputText);
    }

    private EditText mEditText;

    public EditNameDialog() {
        // Empty constructor required for DialogFragment
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_edit_name, container);
        mEditText = (EditText) view.findViewById(R.id.txt_your_name);
        getDialog().setTitle("Hello");

        // Show soft keyboard automatically
        mEditText.requestFocus();
        getDialog().getWindow().setSoftInputMode(
                LayoutParams.SOFT_INPUT_STATE_VISIBLE);
        mEditText.setOnEditorActionListener(this);

        return view;
    }

    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (EditorInfo.IME_ACTION_DONE == actionId) {
            // Return input text to activity
            EditNameDialogListener activity = (EditNameDialogListener) getActivity();
            activity.onFinishEditDialog(mEditText.getText().toString());
            this.dismiss();
            return true;
        }
        return false;
    }
}
For user convenience, we programmatically focus on the EditText with mEditText.requestFocus(). Alternatively, we could have used the <requestFocus/> tag in the layout XML to do this; however, in some cases it’s preferable to request focus programmatically. For example, an OnFocusChangeListener added in the Fragment’s onCreateView() method won’t get called if you request focus in the layout XML.
If the user focuses on an EditText, the soft keyboard will automatically appear. In order to force this to happen with our programmatic focus, we call getDialog().getWindow().setSoftInputMode(). Note that many Window operations you might have done previously in a Dialog can still be done in a DialogFragment, but you have to callgetDialog().getWindow() instead of just getWindow(). The resulting dialog is shown on both a handset and tablet (not to scale):
The onEditorAction() method handles the callback when the user presses the Done key. It gets invoked because we’ve set an OnEditorActionListener on the EditText. It calls back to the Activity to send the entered text. To do this, EditNameDialog declares an interface EditNameDialogListener that is implemented by the Activity. This enables the dialog to be reused by many Activities. To invoke the callback method onFinishEditDialog(), it obtains a reference to the Activity which launched the dialog by calling getActivity(), which all Fragments provide, and then casts it to the interface type. In MVCarchitecture, this is a common pattern for allowing a view to communicate with a controller.
We can dismiss the dialog one of two ways. Here we are calling dismiss() within the Dialog class itself. It could also be called from the Activity like the show() method.
Hopefully this sheds some more light on Fragments as they relate to Dialogs. You can find the sample code in this blog poston Google Code.
References for learning more about Fragments:


Source : Android Developers Blog: Using DialogFragments
[This post is by David Chandler, Android Developer Advocate — Tim Bray]

Sunday, November 18, 2012

Creating Your Own Spelling Checker Service in Android

1. Create a spelling checker service class
Spell Suggestion @ Interesting Code

To create a spelling checker service, the first step is to create a spelling checker service class that extends android.service.textservice.SpellCheckerService.

For a working example of a spelling checker, you may want to take a look at the SampleSpellCheckerService class in the SpellChecker sample app, available from the Samples download package in the Android SDK.


2. Implement the required methods

Next, in your subclass of SpellCheckerService, implement the methods createSession() and onGetSuggestions(), as shown in the following code snippet:


@Override                                                                        public Session createSession() {                                             
    return new AndroidSpellCheckerSession();                                 }       
private static class AndroidSpellCheckerSession extends Session {            
    @Override                                                                
    public SuggestionsInfo onGetSuggestions(TextInfo textInfo, int suggestionsLimit) {
        SuggestionsInfo suggestionsInfo;
        ... // look up suggestions for TextInfo
        return suggestionsInfo;
    }      }


3. Register the spelling checker service in AndroidManifest.xml

In addition to implementing your subclass, you need to declare the spelling checker service in your manifest file. The declaration specifies the application, the service, and a metadata file that defines the Activity to use for controlling settings. Here’s an example:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.samplespellcheckerservice">
    <application android:label="@string/app_name">
        <service 
            android:label="@string/app_name"    
            android:name=".SampleSpellCheckerService" 
            android:permission="android.permission.BIND_TEXT_SERVICE">
            <intent-filter>
                <action 
                    android:name="android.service.textservice.SpellCheckerService" />
            </intent-filter>
            <meta-data
                android:name="android.view.textservice.scs"
                android:resource="@xml/spellchecker" />
        </service>
    </application>
</manifest>

4. Create a metadata XML resource file

Last, create a metadata file for your spelling checker to define the Activity to use for controlling spelling checker settings. The metadata file can also define subtypes for the spelling checker. Place the file in the location specified in the 
element of the spelling checker declaration in the manifest file.

In the example below, the metadata file spellchecker.xml specifies the settings Activity asSpellCheckerSettingsActivity and includes subtypes to define the locales that the spelling checker can handle.

<spell-checker xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/spellchecker_name"
    android:settingsactivity="com.example.SpellCheckerSettingsActivity" />
    <subtype   
        android:label="@string/subtype_generic" 
        android:subtypeLocale="en" />
</spell-checker>

Bonus points: Add batch processing of multiple sentences

For faster, more accurate spell-checking, Android 4.1 (Jelly Bean) introduces APIs that let clients pass multiple sentences to your spelling checker at once.

To support sentence-level checking for multiple sentences in a single call, just override and implement the methodonGetSentenceSuggestionsMultiple(), as shown below. 
private static class AndroidSpellCheckerSession extends Session {                 
    @Override                                                                
    public SentenceSuggestionsInfo[] onGetSentenceSuggestionsMultiple(
          TextInfo[] textInfo, int suggestionsLimit) {
        SentenceSuggestionsInfo[] sentenceSuggestionsInfos;
        ... // look up suggestions for each TextInfo
        return sentenceSuggestionsInfos
    }      }

Documents and samples

If you’d like to learn more about how to use the spelling checker APIs, take a look at these documents and samples:
  • Spelling Checker Framework API Guide — a developer guide covering the Spelling Checker API for clients and services.
  • SampleSpellCheckerService sample app — helps you get started with your spelling checker service.
    • You can find the app at /samples/android-15/SpellChecker/SampleSpellCheckerService in the Samples download.
  • HelloSpellChecker sample app — a basic app that uses a spelling checker.
    • You can find the app at /samples/android-15/SpellChecker/HelloSpellChecker in the Samples download.
To learn how to download sample apps for the Android SDK, see Samples.