cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
Choose Language Hide Translation Bar
Manipulating and managing your specification limits

Do you work with specification limits? Do you struggle with finding convenient ways to manage the specification limit information? Have you struggled with getting this information in the proper format? If so, the new Manage Spec Limits feature in JMP 14 will save you a lot of work and time. This blog post details some of the key features that can be found in this new platform.

Use a spec limits table to create spec limits column properties

Are your specification limits currently stored in a spec limits data table? Would you like to move this information into spec limit column properties for another table? An add-in was written by Jim Nelson, one of our experienced users, to do this very thing. Beginning with JMP 14, the Manage Spec Limits platform provides this functionality.

Let's try this on an example. Start by opening Cities.jmp and CitySpecLimits.jmp found in the JMP sample data folder.

Open(“$SAMPLE_DATA/Cities.jmp”);
Open(“$SAMPLE_DATA/CitySpecLimits.jmp”);
  • With Cities.jmp as the active data table, choose Analyze->Quality and Process->Manage Spec Limits.
  • Select OZONE, CO, SO2, and NO and click Process Variables. 
  • Click OK.

Manage Spec Limits DialogManage Spec Limits Dialog

  • Click Load from Limits Table.
  • Select CitySpecLimits.
  • Click OK.

Choose limits tableChoose limits table

  • To save this information as column properties, click the “Save to Column Properties” button found at the bottom of the report window.

Show Limits column property

I’ve often heard from users that they have many columns with specification limits and they need to check the box “Show as graph reference lines” for all of them. A colleague of mine, Byron Wingerd wrote a blog post that shows how to use JSL to accomplish this task.

Beginning with JMP 14, we have made this even easier with the Manage Spec Limits platform. To see an example of how to use this new feature, open Semiconductor Capability found in the sample data folder.

Open(“$SAMPLE_DATA/Semiconductor Capability.jmp”);
  • Go to Analyze->Quality and Process->Manage Spec Limits.
  • Choose the Processes group and click Process Variables.

Manage Spec Limits DialogManage Spec Limits Dialog

  • Click OK.

From the information contained in the Spec Limits column property, the LSL, Target, and USL are filled in. The box on the far right titled "Show Limits" corresponds to the “Show as Graph Reference Lines” option found in the spec limits column property. It would be time-consuming to check these boxes one at a time.

  • To check all of the boxes, click on the red triangle next to Manage Spec Limits and choose Show Limits All.

Show Limits AllShow Limits All

  • To save this selection back to the data table, click “Save to Column Properties,” which appears at the bottom of the report window.

Now when we look at the spec limits column property for NPN1, we see that “Show as graph reference lines” has been checked.

NPN1 Spec Limits Column PropertyNPN1 Spec Limits Column Property

Control the number of decimal places for your spec limits

Sometimes your specification limits may be stored with more decimal places than you desire. You can use the “Round Decimals” option in Manage Spec Limits to alter the number of decimal places.

  • Using the example above, from the red triangle next to Manage Spec Limits, choose “Round Decimals.”
  • Enter 1 into the box.
  • Click OK.

Rounded to 1 decimalRounded to 1 decimal

  • You can then choose to “Save to Column Properties” or choose one of the Save Table options found at the bottom of the report window.

Create a spec limits table from your column properties

Are your specification limits stored as column properties? Do you need to share just the spec limits with a colleague? Do you need to use those specification limits on another data table? This is now easily accomplished with buttons in the Manage Spec Limits platform. From the Manage Spec Limits window above, click on the button for either “Save to Tall Spec Limits Table” or “Save to Wide Spec Limits Table.” Depending on which option you choose, you get either a tall or wide specification limits data table. You can then share this data table with a colleague or use this spec limits data table on a different data set.

Conclusions

The new Manage Spec Limits platform allows you to easily manipulate your spec limit information. You can create spec limits column properties from a spec limits table, you can check “Show as Graph Reference Lines” for many column properties at once, you can control the number of decimal places your spec limits have, and you can create spec limits tables from your column properties.

Last Modified: Mar 21, 2018 12:58 AM
Comments
Byron_JMP
Staff

First, thank you x10^9 for this new platform. I think it's positioned to solve 99% of my  "working with specs" woes.

 

I have  a quick question about scripting the platform.

in the scripting index there is JSLto open the Manage Spec Limits platform (thanks)


Names Default To Here( 1 ); dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" ); obj = Manage Spec Limits( Y( dt << Get Column Group( "Processes" ) ) );

If my table doesn't have specs in it, how do I script the platform to get the spec limits from another table?

 

tonya_mauldin
Staff

Thank you for your comments.  Here is an example that shows how to script the platform to get the spec limits from another table.

 

dtLimits=New Table( "Limits",
	Add Rows( 4 ),
	New Column( "Variable",
		Character,
		"Nominal",
		Set Values( {"OZONE", "CO", "SO2", "NO"} )
	),
	New Column( "_LSL",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( [0.075, 5, 0.01, 0.01] )
	),
	New Column( "_USL",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( [0.25, 12, 0.09, 0.04] )
	),
	New Column( "_Target",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Set Values( [0.15, 7, 0.04, 0.025] )
	),
	New Column( "Show Limits",
		Numeric,
		"Nominal",
		Format( "Best", 12 ),
		Set Values( [1, 1, 1, 1] )
	)
);
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj=dt<<Manage Spec Limits( Y( :OZONE, :CO, :SO2, :NO ), Load from Limits Table(dtLimits) );
maurogerber
Level III

you may expand the code to:

obj=dt<<Manage Spec Limits( Y( :OZONE, :CO, :SO2, :NO ), Load from Limits Table(dtLimits),Save to Column Properties(1));
obj << close window;

 

TC3366
Level I

@tonya_mauldin  Is there a way to do more than spec limits? I need specs, control, etc. Also, where is the option for response limits in the _Limitskey function. The get _lmitskey has more options to use, but the Manage Spec Limits feature doesn't not use all these options.

 

image.png

tonya_mauldin
Staff

The Manage Spec Limits platform is solely for specification limits.  There is no functionality for control limits or response limits in this platform.  I will forward your request to the developer.

HSS
Level IV
 

Data table --

 

Hari_0-1580313303952.png

 

Specs Table --

image.png

 

 
 

Script using -- 

dt = Data Table ("Specs_Limits");

dt = Data Table ("Table_A");

dt << Manage Spec Limits( Y( :BVIA_RES, :RDR_RES, :TAD_RES, :WELGR_RES ), Load from Limits Table(Specs_Limits) );

Error --- 

Any help ?

 
Name Unresolved: Specs_Limits in access or evaluation of 'Specs_Limits' , Specs_Limits/*###*/Exception in platform launch in access or evaluation of 'Manage Spec Limits' , Manage Spec Limits(/*###*/Y( :BVIA_RES, :RDR_RES, :TAD_RES, :WELGR_RES ),
	Load from Limits Table( Specs_Limits )
)

In the following script, error marked by /*###*/
Manage Spec Limits(
	Y( :BVIA_RES, :RDR_RES, :TAD_RES, :WELGR_RES ),
	Load from Limits Table( Specs_Limits/*###*/ )
)
Manage Spec Limits[]

 

Byron_JMP
Staff

The first thing I would try:

Save the Script and the two data tables to the same folder.

 

HSS
Level IV

Hi Byron,

 

I did it, but still the error is same. Any other suggestion ?

 

Thanks.

 

tonya_mauldin
Staff

I see two issues.

1) dt has been assigned to both Specs_Limits and Table_A.

2)Load from Limits Table( Specs_Limits ) should be Load from Limits Table("Specs_Limits.jmp")

 

Because you specified Spec_Limits, JMP is looking for a variable named Spec_Limits which does not exist.

HSS
Level IV
dt = Data Table ("Table_B");

dt2 = Data Table ("Table_A");

dt3 = dt2 << Manage Spec Limits( Y( :BVIA_RES, :RDR_RES, :TAD_RES, :WELGR_RES ), Load from Limits Table("Table_B.jmp"), Save to Column Properties (1) );

dt3 << close window;

Hi Tonya.

 

Everything is sorted out. Many thanks

 

tonya_mauldin
Staff

I'm glad you were able to get your code working as desired.

Vijaya
Level I

Hi Tonya , 

 

I have recently joined this community and i am completely novice in JSL , as i have received a requirement to automate was looking for answer to my issue which is 

/

/ Launch platform: Manage Spec Limits
Manage Spec Limits(
Process Variables(
:"Assay (HPLC) (labelled amount)>Assay (HPLC) (labelled amount) MPC015271 (KM-1484)>% Active Content"n,
:"Mean>Dissolution (HPLC) (within 20 minutes) (labelled amount) - HK market MPC015270 (KM-1483)>Mean"n,
:"Mean>Dissolution (HPLC) (within 30 minutes) (labelled amount) - DCP, FR markets MPC015270 (KM-1483)>Mean"n,
:
"Mean>Dissolution (HPLC) (within 30 minutes) (labelled amount) MPC015270 (KM-1483)>Mean"n
)
);

// Report snapshot: 74023535_BI stability data_Sheet1 - Manage Spec Limits
Data Table("74023535_BI stability data_Sheet1") <<
Manage Spec Limits(
Process Variables(
:"Assay (HPLC) (labelled amount)>Assay (HPLC) (labelled amount) MPC015271 (KM-1484)>% Active Content"n,
:"Mean>Dissolution (HPLC) (within 20 minutes) (labelled amount) - HK market MPC015270 (KM-1483)>Mean"n,
:"Mean>Dissolution (HPLC) (within 30 minutes) (labelled amount) - DCP, FR markets MPC015270 (KM-1483)>Mean"n,
:
"Mean>Dissolution (HPLC) (within 30 minutes) (labelled amount) MPC015270 (KM-1483)>Mean"n
)
);

dt = Data Table ("74023535_BI stability specifications_Sheet1");

dt2 = Data Table ("74023535_BI stability data_Sheet1");

dt3 = dt2 << Manage Spec Limits( Y( :"Assay (HPLC) (labelled amount)>Assay (HPLC) (labelled amount) MPC015271 (KM-1484)>% Active Content"n, :"Mean>Dissolution (HPLC) (within 20 minutes) (labelled amount) - HK market MPC015270 (KM-1483)>Mean"n, :"Mean>Dissolution (HPLC) (within 30 minutes) (labelled amount) - DCP, FR markets MPC015270 (KM-1483)>Mean"n, :"Mean>Dissolution (HPLC) (within 30 minutes) (labelled amount) MPC015270 (KM-1483)>Mean"n ), Load from Limits Table("74023535_BI stability specifications_Sheet1.jmp"), Save to Column Properties (1) );

dt3 << close window;

 

 

it is opening the manage spec limits window but not loading data from the specification sheet 

 

 

 

P.S i am absolutely new to this.

tonya_mauldin
Staff

@Vijaya Without your data tables it is almost impossible to determine what it is you are trying to do.  It sounds like you have 2 data tables.  One data table contains your new data.  The second data table is a limits data table.  The limits data table must be in the appropriate limits table format (such as the one in the example above).  You will  need to use the JSL code I gave in my comment posted at 04-03-2018 01:24 PM (above).  You must use the command 

Load from Limits Table(dtLimits)

 where dtLimits is the reference to your limits data table.