|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ B3 ~* I- I/ h' ]. Y" {
Teamcenter ITK二次开发源码分享: 创建一个工作流4 {6 r8 t I/ D/ r* \8 K2 Y
3 `# }0 t! y( U- q) f. p
- /*HEAD CREATE_A_PROCESS CCC ITK */
" P- m- i- M2 D- @5 Z - #include <stdlib.h>
/ }. F% j2 o) V% C+ |+ { - #include <TCcore/aom.h>
$ @: Q# d! t' k# P- ^ - #include <tc/emh.h>; Q+ Q( x, D+ H, ]6 i {6 H, Z
- #include <epm/epm.h>
! o0 M/ O$ @- ]1 F- O, R1 } - #include <tc/tc.h>
' y; V- s5 L5 M N* S - #include <sa/tcfile.h>2 q' r8 [* K4 |: e9 M) X; {
- #include <itk/mem.h>0 g" v$ }: U. x' A* @
" R6 M* X. }+ k( H- #define EXIT_FAILURE 1
! L- k; G ]# j' `5 C2 D4 A1 n - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
/ w( {& H+ h! h - static void report_error( char *file, int line, char *function, int return_code)! |$ i' T* T# O k Z- y
- {8 s- H- a3 {) A. F. z; x$ J
- if (return_code != ITK_ok)
5 ^; T6 }# ?* F8 L - {
$ D8 |# t$ O0 L' D; c3 S - char *error_message_string;
: ~4 c/ Y% {( c, U0 [- E/ \ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);2 t& _" K: A& g) f6 V* Z
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% U( S8 n/ e6 S3 d& C$ D) h" h8 G
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
1 w: O Y3 n" g4 c - if(error_message_string) MEM_free(error_message_string);: j1 s. X9 L4 x. }0 k
- printf("\nExiting program!\n");
" L s. `4 ~1 m1 b. v$ N - exit (EXIT_FAILURE);
5 Y9 h2 u; z0 s5 v* e. `$ k9 A - }+ m( r! g& n( {
- }# l1 M6 h( `( w# A. E! y9 W; D
- 4 s# h) E: M- O% I3 x3 b
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 b& o6 X* q( ?' K
- static void check_value( char *function, int value )
. K5 X& h6 @( f6 z# X/ S9 F5 M - {: V$ L& [8 q: N4 w* \0 I+ ~1 i
- if (value == 0)9 K7 a D& Y4 m. O# H, k5 g1 m
- {% M2 u1 j$ z, ~& V
- printf ("\t%s is NULL\n", function);
+ N$ \2 O1 B6 X; ~. w- `. D0 H, } - printf("\nExiting program!\n");
3 y, O# ^4 ?! r- w - exit (EXIT_FAILURE); & F0 a! `* D9 m5 R
- }; [! D# d+ w& C7 x# C
- }; H/ m! [. f" K6 |5 P0 c8 h
" `& D% T# D7 z" L6 \' L( F/ k% A- & r. A' P% W; {8 R+ k1 ~ B
- static void do_it(void)
4 \$ X6 A1 }/ t* a0 e' ] - {& |$ ^+ d9 p# F( g+ \
- int , J$ Z( T2 j9 W/ S) F
- attach_types[1] = {1};
; n; [/ V- \! n \7 K$ v2 k9 A" A - tag_t
* i7 W t* v% j1 v4 d6 f - rev = NULLTAG,
* e# l" g2 \, x" `. l0 G; r - process_template = NULLTAG,
z/ b4 p* \6 A" \- J$ X2 J; ~ - process = NULLTAG;
$ v9 l9 ]& \, O, t - . M3 y9 S! A" s$ A$ E7 f% `
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
8 o3 L, I9 _$ ] - EXIT_IF_NULL( rev );( |! t" z2 U2 O
; C$ w O$ a2 a8 T- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
% y! n' }7 ~4 \ x; L) ~* p0 | - EXIT_IF_NULL( process_template );9 A) t( k* i/ r3 }' h% e8 {
- c4 |; J. X9 u+ k; o- 5 ]/ }- D& y" E1 x* ?6 p7 D
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
# ~% e: T0 d; l8 U' v$ p0 @% T - attach_types, &process) );/ e& Y0 U+ Y6 z* o) H& f- g
- & o P0 s5 o, t0 q. w" V0 |
- EXIT_IF_NULL( process );! J$ ]/ t; M: z/ f+ s: m
- }
1 o9 T! r! X& \. ]! b( l - $ y9 y# X' U: q7 O, W0 ]% I1 @
- int ITK_user_main(int argc, char* argv[])- k0 z% w* l/ E* m( ?8 q- ]
- {! t; N% o% k" Y
- int
% A7 q9 c0 e! z, \. | - status = 0; 5 }# U0 Z$ ?/ k; s+ G. Y# b
-
3 {8 D2 l7 ^0 [2 G+ l+ N# D - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );' U6 e) V2 f f& a) }7 X3 C: U2 R
- status = ITK_auto_login();4 }$ z/ c' a8 D& b' `
-
+ F# W: q0 w6 h* I$ [8 W - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");* |4 v/ G# E7 g& R1 d
- else' t- V& d- M- [& e# k& b
- {
/ L7 T# j9 D: r5 u9 r - printf("\nLogin successful!\n\n");
; f/ v( P5 P! a - ITK_set_journalling(TRUE);8 |$ c* Y5 ?. h6 U
- do_it();
1 K+ o9 l! i( F- W# t3 `" m& p - }3 m& X6 P4 I4 v6 L
- ITK_exit_module(TRUE);* H! V1 y' O6 B% r4 R0 e$ |* |
- return status; {" a. e' |3 z( n9 g2 ^
- }
复制代码 3 t8 ^# A1 V6 ]
, M) h l; t0 ?, Z" {- k" `9 m$ Y; J* l3 j
|
|