Master-Data Harmonization

Master data is a company asset. The better the data, the better business operation (and the lower the costs)

In addition to the capabilities provided with the master-data consolidation IT scenario, master-data harmonization dramatically improves data quality and minimizes redundancy within the system landscape. Master data information that has been consolidated centrally can be distributed to the client systems to achieve overall quality standards and streamlined business operation.

The main process flow in the master-data harmonization IT scenario is as follows:

image

*) Can be used in addition to Syndicator/Syndicator Batch
**) Also possible using SAP NetWeaver Portal (iViews)

In summary, master-data harmonization allows the local creation/update of master data with periodical communication to the central hub and subsequent distribution to other clients to ensure data quality while maintaining data in the local/client application.

SAP NetWeaver MDM provides the following benefits:

  • Incorporate all benefits of master data consolidation
  • Add value through sustained improvement of master data quality in heterogeneous landscapes
  • Allow client-specific control on master data

    The SAP NetWeaver MDM approach focusses on globally relevant master data attributes, and leaves locally relevant information up to the local sites.

    Hope this helps you to see master data management from a scenario and process perspective.

    Best regards,

  • Master-Data Consolidation

    Master data is a company asset. The better the data, the better business operation (and the lower the costs)

    Companies need to be able to base critical business decisions on facts, rather than on assumptions. In this context, they must gain a central view on master data information that is spread across the heterogeneous system landscape. Once this information is at hand, it can be used to run reliable company-wide analytics based on consolidated master data.

    And this is where SAP NetWeaver MDM comes in: The master-data consolidation IT scenario delivers a means to aggregate master data from various SAP and non-SAP sources, with de-duplication and normalization. Duplicate and/or identical records can be detected, and centrally merged into one consolidated record, while the relevant key mapping information (collection of the different object IDs used in the individual client systems) is kept and can be transfered to SAP NetWeaver BI. SAP NetWeaver BI in turn processes this consolidated inflow of data, which is a prerequisite for reliable cross-group analyses.

    For example, this can be effectively utilized to address the challenge of spend analysis and optimizing sourcing and procurement. With SAP NetWeaver MDM, relationships/dependencies between vendors and products can be revealed across the overall system landscape, putting the company in a much better negotiating position, for example, in strategic purchasing processes.

    The master data consoliation IT scenario comes in two variants:

    1. Consolidation of Business Intelligence Master Data:

    image

    In this variant, SAP NetWeaver MDM updates BI master data to provide a solid base for cross-company reporting, such as global spend analyses.

    2. Consolidation of Master Data From Client Systems

    image

    *) Can be used in addition to MDM Import Manager/Import Manager Batch MDM and Syndicator/Syndicator Batch

    In this variant, SAP NetWeaver MDM allows you to identify identical master data objects within heterogeneous landscapes, merge identical objects centrally, and provide the relevant key mapping information for further use in business operations or analytics.

    In summary, master-data consolidation is about consolidating (matching, normalizing, and cleansing) and storing master data imported from client systems (including SAP NetWeaver BI) to uncover existing relationships and enable reliable cross-group analyses (for example, global spend).

    SAP NetWeaver MDM provides the following benefits:

  • Helps companies to leverage existing IT investments by complementing and integrating with their existing IT landscape
  • Provides a starting point for subsequent master-data harmonization or central master-data management
  • Helps companies in major decision-making processes since decisions can be based on consolidated data

    Hope this helps you to see master data management from a scenario and process perspective.

  • SAP MDM Training

    Central Master-Data Management

    Master data is a company asset. The better the data, the better business operation (and the lower the costs)

    In addition to enabling reliable cross-group analytics and improving overall master data quality (through the master-data consolidation and master-data harmonization scenarios), companies could want to:

  • Seek support for central, corporate-defined standards for data creation, approval and maintenance
  • Ensure defined data ownership and responsibilities in heterogeneous environments to substantially improve master data quality

    SAP NetWeaver MDM enables centralized maintenance and storage of globally relevant master data information and allows subsequent distribution to client systems. It differs from master-data harmonization in that master data is created centrally using the MDM rich clients or SAP NetWeaver Portal.

    With SAP NetWeaver MDM, a central comprehensive repository can be created with enriched content that can be used as the single source of truth for all enterprise master data on an inter and intra-enterprise scale.

    The main process flow in the central master-data management IT scenario is as follows:

    image

    *) Also possible using SAP NetWeaver Portal (iViews)
    **) Can be used in addition to MDM Syndicator/Syndicator Batch

    In summary, central master-data management provides a single source of record by creating/updating master data centrally on MDM, supported by workflow-controlled approvals and periodic distribution to client systems.

    SAP NetWeaver MDM provides the following benefits:

  • Support implementation of company-wide quality standards and data ownership
  • Ensure central control of master data as soon as the data is created
  • Enable federated data maintenance processes by management and synchronization of globally relevant master data information and local completion in client systems

    Hope this helps you to see master data management from a scenario and process perspective.

    Best regards,

        SAP MDM Training

  • SAP MDM Interview Questions

  • Data Standardization: Building strong foundation for MDM – Part 1

    1.Introduction

    Corporations having heterogeneous landscapes today are facing the need for a single source of true “data”. The answer comes in the form of MDM 5.5 which offers the capability for “data” consolidation, “data” harmonization and central “data” management etc.
    It is evident that “Data” lies in the core and hence the integrity and quality of data is of vital importance.
    Those aware of the concept of Quality Assurance will appreciate that if the process and standards are adhered to; then the delivered products meet the quality requirements. This holds good for data as well. If the process of generation of data( master data or transactional data) follows the standards then quality and integrity of will be ensured.
    There may be several initiatives or steps an organization may take in order to ensure integrity and quality of data. One such initiative can be “Data Standardization”.
    The ideal time to undertake “Data Standardization” project is prior to the implementation of any integrated ERP system like R/3. However, this looks a bit impractical because today almost all successful organizations run on one or the other good ERP system. In this situation the way out is to undertake “Data Standardization” project prior to MDM implementation. Obviously this will be like “doing the Home work” or “building a strong foundation” for the prospective MDM implementation.


    2.What is Data Standardization?

    An example of Data Non-Standardization!!


    Sometimes it is said - offense is the best form of defense. On the same lines, I would like to put here a crude example of Data Non-Standardization in an organization; this will give a fair idea what I want to talk about.
    The Scenario: An organization has three plants at 3 different locations- 001, 0002 and 0003. All these plants use same bearing:

    Material: Ball Bearing ID: 25mm OD: 47mm, Width: 12mm Catalog # 6005

    However, in each plant it is designated as below:
    image
    In each plant it has different material code and description. Even the same bearing is having two different material codes and descriptions in one plant.
    This example may sound too exaggerating in the first look. However, reality may not be too different. If analyzed closely the master data team can filter out many such examples.
    This is an example of Data Non-Standardization. No unique material code number. No unique or standard way of description.
    This kind of situation leads to serious issues like lack of visibility of a material or product across the enterprise, higher inventory – same material purchased under different codes and/or descriptions etc.
    So the bold statement is - Problem exists. But then….what is the way out?
    3.Time to go back to Basics!?

    Let us quickly revise our basics about Data, Information and Knowledge.

    May be the answer lies there only!!

    Data, Information and Knowledge:


    The classical difference between Data, Information and Knowledge still holds good.
    Data is factual information, used for analysis or reasoning. Data on its own has no meaning, but becomes information when once it is interpreted. Information is a collection of facts or data. It is this information that gives organizations diagnosis or a health check to enable them make a corrective actions required to align them with business drivers.
    image
    We can clearly understand the difference between these three terminologies by defining them with a few examples.
    Data: Kind of Symbols. Data is raw. It simply exists and has no significance beyond its existence (in and of itself). It can exist in any form, usable or not. It does not have meaning of itself.
    Example: A spreadsheet generally starts out by holding data. In SAP world, a table in SAP contains data, which does not have meaning of itself.
    Information: Data that are processed to be useful. Provides answers to “who”, “what”, “where”, and “when” questions.
    Information is data that has been given meaning by way of relational connection. This “meaning” can be useful, but does not necessarily have to be.
    Example: A relational database makes information from the data stored within it. In SAP world, an ABAP query gives birth to information by joining various tables containing data.
    Knowledge: Application of data and information. Answers “how” questions.
    Knowledge is the appropriate collection of information, such that its intent is to be useful. Knowledge is a deterministic process.
    Example: “Spend data” gets generated continuously thru Purchase Requisition, Purchase Order, Material master, Invoice verification etc. in SAP. Using this “data”, an ABAP query can provide the “information” in the form of reports for the purchases made for a certain material XYZ during the current financial year on parameters like – 1) from which suppliers, 2) at what rates, 3) for which plants etc.
    Purchase Manager can come up with “Global Spend Analysis” and use it for Forecasting/Budgeting for next year or to improve cost saving opportunities. This way he is making use of this information by building his “knowledge”.
    Obviously the data, being the core, is very significant. And it is the quality and integrity of data that makes it significant.

    4.Why Data Standardization?

    The “Standardization of Data” is imperative to meet the organizational objectives such as:
    • To provide unique definition of Enterprise entities.
    • To ensure a single, common, unambiguous identification and description of various entities e.g. materials, vendors, customers, employees etc. across the enterprise.
    • To provide the data consistency that is required to enable processes and functions to operate in the future Business Framework.
    • To provide an effective foundation for achieving business flexibility.
    • To ensure a seamless integration of Business Partners into the Supply Chain of the enterprise through effective support of external data requirements.
    • To ensure simplified inter-operability between various system platforms.
    • To achieve common understanding and usage of Data Standards within the enterprise.

    5.Benefits of Data Standardization

    • It is a way to enable standard and integrated systems to meet its business drivers.
    • It is a proactive approach which reduces the risk of data duplication, manipulation etc.
    • It enables the business to respond quickly and effectively to constantly changing client needs
    • It is a way to ensure - Right information to right people at right time
    • It provides reliable, accurate, timely data which in turn helps is Cost reduction, reduction in process wastages,

    6.How the Data Standardization can be achieved?

    This requires a systematic approach to be followed. Typical activities in this approach could be:
    1. Planning for the Data Standards
    2. Development of Data Standards
    3. Implementation of Data Standards
    4. Strictly following and adhering to the Data Standards
    image

    7.Next Steps


    In the next blog we will take a deep dive into nitty-gritty of each of these activities i.e.
    1. What Data should be considered for Standardization and what not?
    2. Business rules to define the enterprise data
    3. Master Data Vs Global Data
    4. Typical business processes and functions supported by Data Standardization
    We will also walk through those aspects and strategies which go into developing a long term vision about the Data Standardization and putting this vision into action.

    SAP MDM Training

    Taming the animal - Qualified Tables

     
    Where do we use the Qualified tables:

    At times data is stored in such a way that duplication is unavoidable due to the storing mechanism and other factors. It may also happen that the data is sparse. The efficient way of storing data in such scenarios is the use of Qualified tables as it reduces the size of the main table and removes the unnecessarily created duplicates.

    Difference between Qualified lookup table and Flat lookup table:

    Flat lookup tables normally work on only a single field. It contains the set of legal values to which corresponding lookup field in the main table is assigned.

    E.g. suppose we have a flat lookup table for Material Group for an automobile manufacturing company. Here we have a fixed set of legal values that can be looked up into the main table (for example Cars, Bikes, SUVs, etc.)

    Qualified tables work on the combination of two types of fields where value of one or more fields (qualifiers) changes depending on the values of one or more other fields (non-qualifiers).

    E.g. suppose we have a field “Price” whose values varies with the region for the same product. Here we have a fixed set of related legal values (combination of fields) that can be looked up into the main table. (For example Product A has a price of $30 in Southern region whereas $40 in Central region, then we get a set like Product A | Southern | $30, Product A | Central | $40 in the Lookup Qualified table)

    Watch out for the definition of Qualifiers and non-Qualifiers:

    This was something which took a long time for me to hunt down.
    Qualifiers – are those fields whose values change based on the value of some other field(s) and whose value is different for each main table record
    Non Qualifiers – These fields are only the part of qualified lookup table, but they apply not only to the qualified table but also to each association of the qualified table record to the main table record. Simply speaking, they are the fields that will decide the values in the Qualifier (main table)fields.

    Our Scenario:

    Suppose we have been provided with the following source data –

    Manufacturer
    Name of Drug
    Region
    Price
    Storage Temp

    A
    Crocin
    North
    280
    27 Celsius

    A
    Crocin
    South
    300
    14 Celsius

    A
    Crocin
    Central
    260
    30 Celsius

    A
    Disprin
    North
    380
    30 Celsius

    A
    Disprin
    South
    360
    27 Celsius

    A
    Disprin
    Central
    320
    14 Celsius

    Observation:

    Values of ‘Price’ and the ‘Storage Temp’ field change based upon the ‘Name of Drug’ and ‘Region’ field values and also their values are different for each main table record; hence these should be madequalifiers in the qualified lookup table
    Since ‘Name of Drug’ and ‘Region’ fields are deciding the qualifier values hence these should be kept as non qualifiers in the qualified lookup table. ‘Manufacturer’ and ‘Price’ will be part of the main table.

    Design of repository:

    We will discuss only the design of the main table ‘Products’ and the Qualified lookup table ‘Prices’ as they are of our immediate concern.
    Products

    Field
    Field Detail

    Manufacturer
    Name- Manufacturer
    Type - Text
    Required – Yes
    Display – Yes

    Lookup[Price]
    Name- Lookup[Price]
    Type - Lookup[Qualified Flat] (multi-valued)
    Required – None
    Display – No
    Multi-Valued - Yes
    Lookup Table – Prices

    Prices

    Field
    Field Detail

    Name of Drug
    Name- Name of Drug
    Type - Text
    Required – No
    Display – Yes
    Qualifier - No

    Region
    Name- Region
    Type - Text
    Required – No
    Display – Yes
    Qualifier - No

    Price
    Name- Price
    Type - Currency
    Required – No
    Display – Yes
    Symbol - $
    Decimal Place - 0
    Qualifier - Yes
    Cache - Yes

    Storage Temp
    Name- Storage Temp
    Type - Measurement
    Required – No
    Display – Yes
    Dimension – Temperature
    Default Unit – Celsius
    Qualifier - Yes
    Cache - Yes

    Note: Caching of qualifiers is strongly recommended as it dramatically improves search performance.
    Once the design of the repository is through, we now move on to the trickiest area – the one of the Import Manager

    Importing records:

    As per the standard practice, we load the lookup table first, here ‘Prices’ and then the main table ‘Products’.
    The source preview is as shown:
    image
    Loading the Qualified lookup table data:
    Select the corresponding tables in the source and destination hierarchy in the Import manager.
    image
    Go to Map Fields/Values tab and Map the corresponding fields in the field mapping grid.
    image
    Note: Here we can see only two fields (non qualifiers) in the destination field grid, however in the repository design we have created four fields.
    The qualifiers (fields) never appear in the destination field of the qualified lookup table in the Import Manager.
    Go to Match Records tab and select the non-qualifiers as matching field and Add it as Combination.
    image
    Select Import Action as Create as it is an Initial load of data.
    Loading the Main table data:
    Map all the source fields to corresponding fields in the repository.
    image
    Notes:Here we see many fields in destination (including qualifiers (Q) which are defined in the qualified table and not in the main table of the repository structure in Console).
    Minimum required field mapping: All non-qualifier fields of the qualified lookup table should be mapped. Qualifier field (Q) is optional.
    Now we are left with one field (Lookup [Price]) in destination which is still unmapped and we have no corresponding field left in the source to map it with. For this, go to source field tab and right click to create compound field as shown –
    image
    Lookup [Price] will be available in the source field and will get automatically mapped to the corresponding destination field.
    Note: If any one of the non-qualifier fields of the qualified lookup table is not yet mapped, we are not allowed to create the compound field.
    Do the Record Matching and Import the data into Data Manager Client by selecting the appropriate Import action.


    Final Qualified data in main table:


    The data is available in the Data Manager as shown –
    image
    P.S. If there is only one non-qualifier in a scenario, then the Compound field is not created and direct one to one mappings suffice.

    SAP MDM Training

    Performing Free Form Searches with MDM Java API

    Performing Free Form Searches via MDM Java API

    SAP NetWeaver MDM comes along with a powerful Java API which covers almost any functionality offered through the client applications. Using a few examples, this blog explains how to perform free form searches via the Java API.

    The examples are based on a very simple MDM Repository. The structure and contents are available at the end of the Blog.

    The Java source is also available (exclusively for SDN users ;-)  ) as a SAP NetWeaver Developer Studio project here.

    Free Form Search in MDM Data Manager

    The examples simulate a free form search on the Products table. So let's briefly have a look on how this is done using the MDM Data Manager.

    Besides the direct selection of values for searching, you can use the Expression field in the Free-Form Search pane.

    Free Form Search in MDM Data Manager

    A doubleclick on the highlighted area will bring up the Search Expression dialog. Here you can either directly type in the search expression or use the shortcut buttons to create an expression.

    Search Expression

    I included the equivalent search expression for each example in the source code.

    Getting Started: Using one single field

    This first example will emulate the search expression

    FIND(Name,"Contractor")



    on table Products.

    The MDM Java API exposes the free form search capabilities via several types of free form search parameters. Each of them is implemented as a separate class and derived from the super class SearchParameter.


    Search parameters are added to an instance of a Search object and they will be taken into consideration for the search as soon as it is executed.


    So the first thing for us to do is to create a new Search object.




    Search search = new Search("Products");





    This search object contains a collection of several instances of search parameter classes. This collection is initially empty. We will now add a new search parameter class to this collection.




    FreeFormTableParameter fftpNames =
    search.GetParameters().NewFreeFormTableParameter("Products");




    As you see we are using the class FreeFormTableParameter since we want to restrict our free form search based on fields of a given table (Products). To create a new instance of this search parameter, we use the method NewFreeFormTableParameter() of the SearchParameters collection. This method requires the table name from which we will later on use the fields and will also add this new parameter to the collection.

    FreeFormParameterField ffpfName = fftpNames.GetFields().New("Name");



    This line of code adds a new FreeFormParameterField based on the field Name of the Products table to the search parameter. This is the field we are using in our expression above.

    ffpfName.GetFreeForm().NewString("Contractor", FreeFormParameter.SubstringSearchType);



    Here we use the FreeFormParameterField to add the restriction for the value Contractor. We use NewString() because this is a string value and we specify a substring search.


    As with any other search

    A2iResultSet result = catalog.GetResultSet(search, rsd, "Name", true, 0);



    will execute the search and return the result.


    The complete source code is available at the end of the blog.

    Single Field, More Values

    The next thing is to search for multiple values, but still using one single field. Let's take the expression

    FIND(Name, "Contractor") AND FIND(Name, "Blade") AND FIND(Name,
    "Standard")

    on table Products.


    The code is exactly the same as above until the instanciation of the FreeFormParameterField:

    FreeFormParameterField ffpfName = fftpNames.GetFields().New("Name",
    FreeFormParameterField.SEARCH_OPERATOR_AND);



    This line of code will combine the search with logical AND.


    After that we can simply add each of the values, one after the other.

    ffpfName.GetFreeForm().NewString("Contractor",
    FreeFormParameter.SubstringSearchType);


    ffpfName.GetFreeForm().NewString("Blade",
    FreeFormParameter.SubstringSearchType);


    ffpfName.GetFreeForm().NewString("Standard",
    FreeFormParameter.SubstringSearchType);



    Most probably you already guessed, that for the expression

    FIND(Name, "Contractor") OR FIND(Name, "Blade") OR FIND(Name,
    "Standard")

    on table Products, we have to use the coding

    FreeFormParameterField ffpfName = fftpNames.GetFields().New("Name",
    FreeFormParameterField.SEARCH_OPERATOR_OR);


    AND and OR together

    The previous example covered expressions using either only OR combinations or AND combinations of the values. Now we want to go for

    (FIND(Name, "Contractor") OR FIND(Name, "Blade")) AND FIND(Name,
    "Standard")

    on table Products.


    A litte bit more complicated but still straight forward:


    Start with the first sub-expression (the OR combination in brackets):

    FreeFormParameterField ffpfName1 = fftpNames.GetFields().New("Name",
    FreeFormParameterField.SEARCH_OPERATOR_OR);


    ffpfName1.GetFreeForm().NewString("Contractor", FreeFormParameter.SubstringSearchType);


    ffpfName1.GetFreeForm().NewString("Blade", FreeFormParameter.SubstringSearchType);



    After that add a new FreeFormParameterField.

    FreeFormParameterField ffpfName2 = fftpNames.GetFields().New("Name");


    ffpfName2.GetFreeForm().NewString("Standard", FreeFormParameter.SubstringSearchType);



    Several FreeFormParameterField instances will be AND combined automatically.

    Two fields

    The expression

    FIND(Manufacturer, "Estwing") AND FIND(Name, "Polyurethane") 

    on table Products uses two fields. But based on what you have already seen, the implementation is easy.


    One FreeFormParameterField for the first field:

    FreeFormParameterField ffpfManu = fftpProducts.GetFields().New("Manufacturer");


    ffpfManu.GetFreeForm().NewString("Estwing", FreeFormParameter.SubstringSearchType);



    And one FreeFormParameterField for the second field:

    FreeFormParameterField ffpfName = fftpProducts.GetFields().New("Name");


    ffpfName.GetFreeForm().NewString("Polyurethane", FreeFormParameter.SubstringSearchType);



    Again, the search parameters are AND combined by default.

    OR Combination of Search Parameters

    In order to override the default AND operator between fields, which is necessary for the expression

    FIND(Manufacturer, "Estwing") OR FIND(Name, "Polyurethane")

    on table Products, we need to change the default behaviour of the Search object we are using.

    search.SetSearchType(Search.GlobalOrSearchCombinationType);



    This will have the effect, that all FreeFormParameterField will be OR combined instead of AND.


    The rest of the code is exactly the same as above.

    Complete Java Source Code


    ------------------------------------------------------------------



    import a2i.core.*;

    import a2i.common.*;


    import a2i.search.*;


    /**


    * Examples for free form searches via the MDM Java API.


    * * <br>To run these examples, create the following


    Classpath Variable in your Developer Studio to link to your local MDM


    API JAR:</p>


    *Go to <em>Window -> Preferences -> Java


    -> Classpath Variables</em> and create this


    variable:<br>


    *<em>SAP_MDM_MDM4J</em> - Path to the


    folder containing MDM4J.jar<br>


    *<br>


    *Of course you need also an up-and-running MDM Server with a loaded


    Repository.<br>


    *The connection details are directly maintained in the source


    code.<br>


    *


    *<br><br>


    * *This code is copyrighted by SAP AG, Dietmar-Hopp-Allee 16, 69190


    Walldorf, Germany.<br><br>


    *It has been written to serve educational purposes only. You may reuse,


    modify and


    *redistribute it as long as the following rules are obeyed:


    <br><br>


    *<strong>


    *SAP AG assumes no responsibility for errors or omissions in this


    sample code.<br>


    *It is provided "as is" without a warranty of any kind, either express


    or implied,


    *including, but not limited to, the implied warranties of


    merchantability, fitness for a particular purpose,


    *or non-infringement.<br>


    *SAP AG shall not be liable for damages of any kind including without


    limitation direct, special,


    *indirect, or consequential damages that may result from the use of


    this code.<br>


    *SAP AG does not warrant the accuracy or completeness of information,


    text, graphics, links or


    *other items contained within these materials. SAP AG reserves the


    right to modify, replace or


    *supplement this documentation and coding without notice.


    *</strong>


    *


    * @author Andreas Seifried (D035740), Copyright SAP AG, 200


    */


    public class FreeFormSearchExamples {


    CatalogData catalog;


    public void login() {


    catalog = new CatalogData();


    catalog.Login("localhost", 2010, "Admin", "", "English [US]");


    }


    public void logout() {


    try {


    catalog.Logout();


    } catch (StringException e) {


    System.out.println("Logout Failed!");


    e.printStackTrace();


    }


    }


    /**


    * Search on one single field for one single value


    */


    public void searchSingleFieldSimple() {


    //FIND(Name, "Contractor") on table Products


    // case sensitive substring search in the field "Name"


    System.out.println();


    System.out.println("Performing searchSingleFieldSimple()");


    System.out.println("FIND(Name, \"Contractor\") on table Products");


    System.out.println("Expected Hits: 18");


    System.out.println("=========================");


    ResultSetDefinition rsd = new ResultSetDefinition("Products");


    rsd.AddField("Name");


    Search search = new Search("Products");


    FreeFormTableParameter fftpNames =


    search.GetParameters().NewFreeFormTableParameter("Products");


    FreeFormParameterField ffpfName = fftpNames.GetFields().New("Name");


    ffpfName.GetFreeForm().NewString("Contractor",


    FreeFormParameter.SubstringSearchType);


    A2iResultSet result;


    try {


    result = catalog.GetResultSet(search, rsd, "Name", true, 0);


    System.out.println("Found " + result.GetRecordCount() + " records.");


    // for(int n=0; n<result.GetRecordCount(); n++) {


    // System.out.println(result.GetValueAt(n, "Name").GetStringValue());


    // }


    } catch (StringException e) {


    System.out.println("Search Failed!");


    e.printStackTrace();


    }


    }


    /**


    * Search on one single field for 3 values, AND combination


    */ public void searchSingleFieldAnd() {


    //FIND(Name, "Contractor") AND FIND(Name, "Blade") AND FIND(Name,


    "Standard") on table Products


    System.out.println();


    System.out.println("Performing searchSingleFieldAnd()");


    System.out.println("FIND(Name, \"Contractor\") AND FIND(Name,


    \"Blade\") AND FIND(Name, \"Standard\") on table Products");


    System.out.println("Expected Hits: 5");


    System.out.println("=========================");


    ResultSetDefinition rsd = new ResultSetDefinition("Products");


    rsd.AddField("Name");


    Search search = new Search("Products");


    FreeFormTableParameter fftpNames =


    search.GetParameters().NewFreeFormTableParameter("Products");


    FreeFormParameterField ffpfName = fftpNames.GetFields().New("Name",


    FreeFormParameterField.SEARCH_OPERATOR_AND);


    ffpfName.GetFreeForm().NewString("Contractor",


    FreeFormParameter.SubstringSearchType);


    ffpfName.GetFreeForm().NewString("Blade",


    FreeFormParameter.SubstringSearchType);


    ffpfName.GetFreeForm().NewString("Standard",


    FreeFormParameter.SubstringSearchType);


    A2iResultSet result;


    try {


    result = catalog.GetResultSet(search, rsd, "Name", true, 0);


    System.out.println("Found " + result.GetRecordCount() + " records.");


    // for(int n=0; n<result.GetRecordCount(); n++) {


    // System.out.println(result.GetValueAt(n, "Name").GetStringValue());


    // }


    } catch (StringException e) {


    System.out.println("Search Failed!");


    e.printStackTrace();


    }


    }


    /**


    * Search on one single field for 3 values, OR combination


    */ public void searchSingleFieldOr() {


    //FIND(Name, "Contractor") OR FIND(Name, "Blade") OR FIND(Name,


    "Standard") on table Products


    System.out.println();


    System.out.println("Performing searchSingleFieldOr()");


    System.out.println("FIND(Name, \"Contractor\") OR FIND(Name, \"Blade\")


    OR FIND(Name, \"Standard\") on table Products");


    System.out.println("Expected Hits: 48");


    System.out.println("=========================");


    ResultSetDefinition rsd = new ResultSetDefinition("Products");


    rsd.AddField("Name");


    Search search = new Search("Products");


    FreeFormTableParameter fftpNames =


    search.GetParameters().NewFreeFormTableParameter("Products");


    FreeFormParameterField ffpfName = fftpNames.GetFields().New("Name",


    FreeFormParameterField.SEARCH_OPERATOR_OR);


    ffpfName.GetFreeForm().NewString("Contractor",


    FreeFormParameter.SubstringSearchType);


    ffpfName.GetFreeForm().NewString("Blade",


    FreeFormParameter.SubstringSearchType);


    ffpfName.GetFreeForm().NewString("Standard",


    FreeFormParameter.SubstringSearchType);


    A2iResultSet result;


    try {


    result = catalog.GetResultSet(search, rsd, "Name", true, 0);


    System.out.println("Found " + result.GetRecordCount() + " records.");


    // for(int n=0; n<result.GetRecordCount(); n++) {


    // System.out.println(result.GetValueAt(n, "Name").GetStringValue());


    // }


    } catch (StringException e) {


    System.out.println("Search Failed!");


    e.printStackTrace();


    }


    }


    /**


    * Search on one single field for 3 values, nested OR / AND combination


    */ public void searchSingleFieldOrAnd() {


    //(FIND(Name, "Contractor") OR FIND(Name, "Blade")) AND FIND(Name,


    "Standard") on table Products


    System.out.println();


    System.out.println("Performing searchSingleFieldOrAnd()");


    System.out.println("(FIND(Name, \"Contractor\") OR FIND(Name,


    \"Blade\")) AND FIND(Name, \"Standard\") on table Products");


    System.out.println("Expected Hits: 11");


    System.out.println("=========================");


    ResultSetDefinition rsd = new ResultSetDefinition("Products");


    rsd.AddField("Name");


    Search search = new Search("Products");


    FreeFormTableParameter fftpNames =


    search.GetParameters().NewFreeFormTableParameter("Products");


    FreeFormParameterField ffpfName1 = fftpNames.GetFields().New("Name",


    FreeFormParameterField.SEARCH_OPERATOR_OR);


    ffpfName1.GetFreeForm().NewString("Contractor",


    FreeFormParameter.SubstringSearchType);


    ffpfName1.GetFreeForm().NewString("Blade",


    FreeFormParameter.SubstringSearchType);


    FreeFormParameterField ffpfName2 = fftpNames.GetFields().New("Name");


    ffpfName2.GetFreeForm().NewString("Standard",


    FreeFormParameter.SubstringSearchType);


    A2iResultSet result;


    try {


    result = catalog.GetResultSet(search, rsd, "Name", true, 0);


    System.out.println("Found " + result.GetRecordCount() + " records.");


    // for(int n=0; n<result.GetRecordCount(); n++) {


    // System.out.println(result.GetValueAt(n, "Name").GetStringValue());


    // }


    } catch (StringException e) {


    System.out.println("Search Failed!");


    e.printStackTrace();


    }


    }


    /**


    * Search on two fields for single values, AND combination


    */ public void searchTwoFieldsAnd() {


    //FIND(Manufacturer, "Estwing") AND FIND(Name, "Polyurethane") on table


    Products


    System.out.println();


    System.out.println("Performing searchTwoFieldsAnd()");


    System.out.println("FIND(Manufacturer, \"Estwing\") AND FIND(Name,


    \"Polyurethane\") on table Products");


    System.out.println("Expected Hits: 3");


    System.out.println("=========================");


    ResultSetDefinition rsd = new ResultSetDefinition("Products");


    rsd.AddField("Name");


    rsd.AddField("Manufacturer");


    Search search = new Search("Products");


    FreeFormTableParameter fftpProducts =


    search.GetParameters().NewFreeFormTableParameter("Products");


    FreeFormParameterField ffpfManu =


    fftpProducts.GetFields().New("Manufacturer");


    ffpfManu.GetFreeForm().NewString("Estwing",


    FreeFormParameter.SubstringSearchType);


    FreeFormParameterField ffpfName = fftpProducts.GetFields().New("Name");


    ffpfName.GetFreeForm().NewString("Polyurethane",


    FreeFormParameter.SubstringSearchType);


    A2iResultSet result;


    try {


    result = catalog.GetResultSet(search, rsd, "Name", true, 0);


    System.out.println("Found " + result.GetRecordCount() + " records.");


    // for(int n=0; n<result.GetRecordCount(); n++) {


    // System.out.println(result.GetValueAt(n, "Name").GetStringValue() +


    "\t\t" + result.GetValueAt(n, "Manufacturer").GetStringValue());


    // }


    } catch (StringException e) {


    System.out.println("Search Failed!");


    e.printStackTrace();


    }


    }


    /**


    * Search on two fields for single values, OR combination


    */ public void searchTwoFieldsOr() {


    //FIND(Manufacturer, "Estwing") OR FIND(Name, "Polyurethane") on table


    Products


    System.out.println();


    System.out.println("Performing searchTwoFieldsOr()");


    System.out.println("FIND(Manufacturer, \"Estwing\") OR FIND(Name,


    \"Polyurethane\") on table Products");


    System.out.println("Expected Hits: 67");


    System.out.println("=========================");


    ResultSetDefinition rsd = new ResultSetDefinition("Products");


    rsd.AddField("Name");


    rsd.AddField("Manufacturer");


    Search search = new Search("Products");


    search.SetSearchType(Search.GlobalOrSearchCombinationType);


    FreeFormTableParameter fftpProducts =


    search.GetParameters().NewFreeFormTableParameter("Products");


    FreeFormParameterField ffpfManu =


    fftpProducts.GetFields().New("Manufacturer");


    ffpfManu.GetFreeForm().NewString("Estwing",


    FreeFormParameter.SubstringSearchType);


    FreeFormParameterField ffpfName = fftpProducts.GetFields().New("Name");


    ffpfName.GetFreeForm().NewString("Polyurethane",


    FreeFormParameter.SubstringSearchType);


    search.SetSearchType(Search.GlobalOrSearchCombinationType);


    A2iResultSet result;


    try {


    result = catalog.GetResultSet(search, rsd, "Name", true, 0);


    System.out.println("Found " + result.GetRecordCount() + " records.");


    // for(int n=0; n<result.GetRecordCount(); n++) {


    // System.out.println(result.GetValueAt(n, "Name").GetStringValue() +


    "\t\t" + result.GetValueAt(n, "Manufacturer").GetStringValue());


    // }


    } catch (StringException e) {


    System.out.println("Search Failed!");


    e.printStackTrace();


    }


    }


    public static void main(String[] args) {


    FreeFormSearchExamples ffse = new FreeFormSearchExamples();


    ffse.login();


    ffse.searchSingleFieldSimple();


    ffse.searchSingleFieldAnd();


    ffse.searchSingleFieldOr();


    ffse.searchSingleFieldOrAnd();


    ffse.searchTwoFieldsAnd();


    ffse.searchTwoFieldsOr(); ffse.logout();


    }


    }



     



    ------------------------------------------------------------------



    Example Repository


    Structure


    These examples are using a very simple MDM Repository ApiSampleRepositry, which is based on a main table called Products and a flat lookup table Manufacturers. Here are the details:



    Tables of the ApiSampleRepository



    Products table:



    Fields of the Products table



    The Manufacturer field references the Manufacturers table.



    Manufacturers table:



    Fields of the Manufacturers table



    Contents


    The repository was loaded with this XML file:



    ------------------------------------------------------------------



    <?xml

    version="1.0" encoding="UTF-8"?>


    <Products>


    <Product>


    <Name>Clear Safety Goggles</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Key-Ring Standard Tip


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Claw Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Rip Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Claw Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Rip Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wood Handle Builder's Series Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wood Handle Builder's Series Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Wooden Handle Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Sledge


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Sledge


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Slimline Polyurethane Deadblow


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Sledge


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Slimline Polyurethane Deadblow


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Slimline Polyurethane Deadblow


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Fast-Drying Polyurethane Paint</Name>


    <Manufacturer>Minwax Company</Manufacturer>


    </Product>


    <Product>


    <Name>Fast-Drying Polyurethane Paint</Name>


    <Manufacturer>Minwax Company</Manufacturer>


    </Product>


    <Product>


    <Name>Fast-Drying Polyurethane Paint</Name>


    <Manufacturer>Minwax Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Mallet</Name>


    <Manufacturer>Vaughan & Bushnell Mfg.


    Co.</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Phillips® Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Phillips® Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Light-Blade/Cabinet Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Standard-Blade/Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Light-Blade/Cabinet Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Standard-Blade/Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>2-pc Standard Fluted Screwdriver


    Set</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>BexT Standard Gloves</Name>


    <Manufacturer>Best Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>BexT Standard Gloves</Name>


    <Manufacturer>Best Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>BexT Standard Gloves</Name>


    <Manufacturer>Best Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>BexT Standard Gloves</Name>


    <Manufacturer>Best Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Pozidriv® Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Pozidriv® Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Pozidriv® Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Pozidriv® Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Phillips® Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT Square-Head


    Style Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Light Blade/Cabinet Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Fluted Light Blade/Cabinet Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Phillips® Standard Fluted Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Phillips® Standard Fluted Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Handyman® Standard Stubby


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Phillips® Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Phillips® Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Phillips® Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Square-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Square-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Cushion-Grip Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Cushion-Grip Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Cushion-Grip Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Cushion-Grip Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Stubby/Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Square-Blade/Standard


    Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Square-Blade/Standard


    Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Square-Blade/Standard


    Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Light-Blade/Cabinet


    Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Light-Blade/Cabinet


    Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl-Grip Light-Blade/Cabinet


    Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT Pocket


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT Pocket


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT Pocket


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Extra-Light-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Extra-Light-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Extra-Light-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Extra-Light-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Extra-Light-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Extra-Light-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Standard-Blade/Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Square-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Square-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Square-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Square-Blade/Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Square-Blade/Standard Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>100 Plus® Contractor GradeT


    Standard-Blade/Cabinet Tip Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT 6-pc Combination Screwdriver


    Set</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT 8-pc Combination Screwdriver


    Set</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Contractor GradeT Vinyl Coated Blade


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>FatmaxT Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>FatmaxT Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>FatmaxT Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>FatmaxT Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>FatmaxT Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>FatmaxT Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Lock Ring Pliers</Name>


    <Manufacturer>The Armstrong Tool


    Comp.</Manufacturer>


    </Product>


    <Product>


    <Name>Fluted Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Fluted Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Fluted Stubby/Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Fluted Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Fluted Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Fluted Standard Tip


    Screwdriver</Name>


    <Manufacturer>Stanley®</Manufacturer>


    </Product>


    <Product>


    <Name>Specialty Polyurethane Coating</Name>


    <Manufacturer>Rust-Oleum


    Corporation</Manufacturer>


    </Product>


    <Product>


    <Name>Specialty Polyurethane Coating</Name>


    <Manufacturer>Rust-Oleum


    Corporation</Manufacturer>


    </Product>


    <Product>


    <Name>Specialty Polyurethane Coating</Name>


    <Manufacturer>Rust-Oleum


    Corporation</Manufacturer>


    </Product>


    <Product>


    <Name>Stubby Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Round-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>ProtoblackT Standard Tip Round-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Round-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>ProtoblackT Standard Tip Round-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Round-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Round-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>ProtoblackT Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>ProtoblackT Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>ProtoblackT Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>ProtoblackT Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Square-Shank


    Screwdriver</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>6-pc Standard Screwdriver Set</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>4-pc Standard Screwdriver Set</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>6-pc Standard Screwdriver Set</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>6-pc ProtoblackT Standard Screwdriver


    Set</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Polyurethane Deadblow Sledge


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Screw Starter</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Screw Starter</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Standard Tip Screw Starter</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Phillips/Standard Tip Screw


    Starter</Name>


    <Manufacturer>Proto®</Manufacturer>


    </Product>


    <Product>


    <Name>Slimline Polyurethane Deadblow


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Asian Pattern Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Asian Pattern Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Asian Pattern Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Asian Pattern Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Crack/Drilling


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Crack/Drilling


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Crack/Drilling


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Long-Handle Crack/Drilling


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>BexT Standard Gloves</Name>


    <Manufacturer>Best Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>BexT Standard Gloves</Name>


    <Manufacturer>Best Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Deadhead® Black Rubber


    Mallet</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Deadhead® Gray Rubber


    Mallet</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Deadhead® Black Rubber


    Mallet</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Deadhead® Gray Rubber


    Mallet</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Claw Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Rip Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Light-Weight Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Light-Weight Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Claw Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Rip Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Claw Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Rip Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip German Pattern


    Latthammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip German Pattern


    Latthammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip German Pattern


    Latthammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip German Pattern


    Latthammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip English Pattern Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip English Pattern Rip


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip English Pattern Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip English Pattern Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Drywall Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Bricklayer/Mason's


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Ball Peen


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Claw Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Chisel Edge Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Ripping Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Light-Weight Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Light-Weight Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Pointed Tip Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Bricklayer/Mason's


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Ball Peen


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Claw Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Ripping Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Drywall Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Bricklayer/Mason's


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Bricklayer/Mason's


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Claw Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Chisel Edge Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Ripping Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Pointed Tip Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Latthammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Latthammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Latthammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Latthammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Long-Handle Pointed-Tip Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Bricklayer/Mason's


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Bricklayer/Mason's


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Ball Peen


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Chisel Edge Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Builder's Series Large-Face


    Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Builder's Series Large-Face


    Framing Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip English Pattern Claw


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Carpenter's Hatchet</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Framing


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Ball Peen


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Engineer's


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern Berliner Bricklayer


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern Berliner Bricklayer


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Ball Peen


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Shingler's Hammer w/Replaceable Blade &


    Gauge</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Shingler's Hammer w/Replaceable


    Gauge</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Welding Chipping


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip Pointed Tip Rock Pick


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Leather Grip German Pattern


    Schlosserhammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip HammertoothT


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip HammertoothT


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Cross Peen Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip HammertoothT


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip HammertoothT


    Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Cross Peen Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Cross Peen Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Cross Peen Hammer</Name>


    <Manufacturer>Estwing Manufacturing


    Company</Manufacturer>


    </Product>


    <Product>


    <Name>Nylon-Vinyl Grip Engineer's


    Hammer</Name>


    <Manufactu</img></img></img></img></img></p>



     



    ------------------------------------------------------------------

    SAP Developer Network Latest Updates