|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ K, @. I, d0 |" M- v2 F) W
Teamcenter ITK二次开发源码分享: 创建一个工作流; O3 v( o) Q6 j3 d
3 `" v3 m; }7 {) {. |
- /*HEAD CREATE_A_PROCESS CCC ITK */( O1 \) y$ Q! u/ ?) b; j% T
- #include <stdlib.h> {4 X; D: x7 P& K a4 I/ Y
- #include <TCcore/aom.h>
3 l1 q; `$ [3 X5 b1 _ - #include <tc/emh.h>
$ K/ k: }; N- E9 k: [5 R - #include <epm/epm.h>
5 G- _( C5 F" G0 a K, s8 ~" z - #include <tc/tc.h>( `, @6 @% [" \3 Y& ^3 P3 a
- #include <sa/tcfile.h>+ I7 L6 _) K- a
- #include <itk/mem.h>
3 a2 c* s; H# i8 o" O: G: g y) F - 1 i( D& p8 \! q/ Q, ?0 Z, s( ^9 ]
- #define EXIT_FAILURE 1
( x" n" v5 |0 B+ Z) R5 c) {9 E4 H" f - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
" \* k! D4 e' z+ ~- ~' j4 K - static void report_error( char *file, int line, char *function, int return_code)0 k, j( `5 Y- p+ p# `
- {
6 T8 U. ?$ d, C; r4 h2 s% N - if (return_code != ITK_ok)
1 l2 s) O. U# ^ - {2 e1 j& i; ?1 J! J, U) p
- char *error_message_string;' Y* K( t5 l9 V. G& F
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
/ [; O/ Z2 n! z: @7 ?. ?1 {& {0 b - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
" {. R6 l7 l4 e0 E" c/ U7 Q - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
: M8 V' R/ F, g7 {, V - if(error_message_string) MEM_free(error_message_string);
; u; D% S& X+ Y) u/ s - printf("\nExiting program!\n");
( c% r7 T; k$ ~: \. L - exit (EXIT_FAILURE);
; N4 A" x" k7 O9 q$ H& S - }
3 x, s/ [# q* v8 h - }" s& {( N5 ?3 z
- * X, \. w" e! ?/ \0 i8 J
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))1 n2 l1 ]: C- T$ e3 o
- static void check_value( char *function, int value )
7 S5 C; o0 X4 A- t$ I* W% E - {8 A# p" \& B: ^7 p. i3 O
- if (value == 0)
! R, S; ]9 x1 h6 g - {8 I$ F7 q* X5 L% x- Q+ L- U5 j
- printf ("\t%s is NULL\n", function);
8 o5 O- ]7 ?" G- j - printf("\nExiting program!\n");
7 q; R4 Y. _) W; R6 e - exit (EXIT_FAILURE); " T S3 R, G: g& ?; {
- }
, w; r1 |0 d/ G - }$ e4 l) I, A$ x: [
2 `6 v8 S6 G3 D) C- 8 x; J' E: m5 k J7 p' p0 j6 e
- static void do_it(void)4 k8 N# b ` ^% Z' {) H
- {" v- T+ n/ J- B" C4 u# \3 a; ~8 P/ G
- int
+ a% w' R0 `* n+ w! F$ X - attach_types[1] = {1};
0 v2 S* [$ |& y - tag_t
3 C* A( g R8 }6 ^* d - rev = NULLTAG, _: W# y+ H1 ^- `7 l# J3 Z
- process_template = NULLTAG,
" v6 a9 s0 Y/ f' P0 S% h - process = NULLTAG;
( [# h+ o0 E Z" d3 n - ) V/ g/ X9 b/ ~. B2 `
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' D4 y- |& f; l8 S* ?
- EXIT_IF_NULL( rev );! ^: [# L+ _/ |0 |1 C8 Y
- ( a" Y: `$ G) x1 P2 p; _
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
, w& e6 X) W' R, N" r$ @ - EXIT_IF_NULL( process_template );
8 w- K; a1 P3 O! Y9 N& x
J% E2 c9 m* C) l) J- 7 t9 e; g$ J9 Q6 @
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, # J& i9 I( d+ a3 E) v# T2 J# L
- attach_types, &process) );
. s1 {- Q: u* q7 b
( D) e! j! I0 q% @, y6 Y i6 ]- EXIT_IF_NULL( process );3 R9 ~0 O, R" f$ z' l
- }7 _ y: L3 d8 F" d
' d* ~$ j8 _- A4 p3 f' ]- int ITK_user_main(int argc, char* argv[])0 T& d7 x2 i4 g$ Q. h/ n$ R M
- {* t( g7 ? K1 }& F* o4 X; z c5 D
- int
6 ]8 o9 x) Y& }! {6 F0 k! r8 O - status = 0;
* {4 U5 @) d; Z! [% `* A - + }3 Z, S3 t. g# L0 P6 B/ u! e
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
& b5 D7 U5 H7 U0 S - status = ITK_auto_login();
g. n% y, |9 S& N -
+ ?% D' O# w, ^# R, n9 t) M- o - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
3 h" h, Q/ q( w4 ^0 q& g - else
& E0 |' q9 { L- ^- e* y - {
6 X. b8 ~ a, \* p: K( l5 M1 J- {; l' ? - printf("\nLogin successful!\n\n");, O4 q+ _2 ?3 k0 X% E5 F6 ]. f
- ITK_set_journalling(TRUE);
( ], z7 Z3 _; x0 n( ]0 r - do_it();
9 v1 P4 m8 y2 w - }' W& r" ^- x: ~* p* f$ s
- ITK_exit_module(TRUE);. _& J( `9 X. T& N( J/ i" Z
- return status;
, R) J# g4 m9 Z6 K3 y3 r1 [2 W* w1 w - }
复制代码 3 ~: n- t5 }5 }& } u4 ^$ g3 D. [
r9 u: }% y! ~! g7 X
$ l# b1 }0 Z: y' n: s1 s' p |
|