|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: V6 M' l9 I- d8 jTeamcenter ITK二次开发源码分享: 创建一个工作流) d5 L9 a1 f+ P
+ e% h- I/ |2 e1 g# D* B! u
- /*HEAD CREATE_A_PROCESS CCC ITK */
3 Z8 w: d. L Z' P- d - #include <stdlib.h>: L$ S& T- |' y; p# h4 j
- #include <TCcore/aom.h>
& ~ U' D# W: _! T+ X, J - #include <tc/emh.h>- u( g( h% q1 ]7 L; M" D+ ]
- #include <epm/epm.h>
+ I& p. ?4 m" F% L - #include <tc/tc.h>
; w' Q, l' S& o6 X! ^ - #include <sa/tcfile.h>
; h3 E! y: Y" x! @3 h+ F0 h1 M - #include <itk/mem.h>
5 M- p. B1 X$ e: Y9 k, i" r: s3 `
$ T9 Z: ]; b+ \/ c: @- #define EXIT_FAILURE 1
- I6 \; H6 z4 }3 W; E - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))) n# a: u- V4 w" r) K! `. j( a( d
- static void report_error( char *file, int line, char *function, int return_code)
7 e' L* q, m( p' a4 p/ W - {' \, v. Y( s" \6 H
- if (return_code != ITK_ok); O; n( W. d, P! I$ q1 B7 B! z% b
- {
) @! z$ o" o8 y% s8 r - char *error_message_string;
: g, u! ]8 s* j9 G) S - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
# {( H: E9 Y W* o# [) q: f - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);5 C0 u+ Z6 e Y: o& o7 [
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);1 ^; q# P. I, `# [
- if(error_message_string) MEM_free(error_message_string);
6 W. a' G$ x/ U0 A1 M3 Y g - printf("\nExiting program!\n");5 }/ j6 V1 P" }# J! ^- M
- exit (EXIT_FAILURE); + F& E; l6 d; y& F9 S7 X% L& W2 w
- }! y( |4 Z' |: t9 `8 l/ j- g* }
- }1 k. P, U; U4 f1 I; I# k7 a" y
0 ~* b4 I# b6 N$ [, n/ ^ S9 i- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
8 b) X- U. L% G5 i9 g8 u8 @' x - static void check_value( char *function, int value )- a; n4 z9 f- _2 z1 {6 n
- {8 O3 N1 B' U* V: o/ T# R% S
- if (value == 0)) E( p( ?* x5 J% ^7 w
- {7 g2 u3 t2 E. U- g0 [
- printf ("\t%s is NULL\n", function);# ~. q+ X5 X$ p7 n6 {
- printf("\nExiting program!\n");
# K% `) c$ y2 g$ y G$ r - exit (EXIT_FAILURE);
" c6 S, k4 F* X8 ?7 s4 i - }
; f. s$ n0 S9 E - }
6 H+ a& t+ o# ?& r
( O, t2 V( d7 Y( e
3 u: E7 U8 b0 q/ L- static void do_it(void)& v; Z9 Z8 N2 a+ a) Y
- {
* h6 A/ X; |3 `$ z; o( u- V' t# x1 O - int
" v6 U2 S6 L. y% [# w% o% x8 B D - attach_types[1] = {1};7 O* u& m* I2 K) u; B0 H) m C
- tag_t
% O9 P% L0 E; W% { - rev = NULLTAG, ' H5 @9 C, ]; ?) Z* T
- process_template = NULLTAG,
* L7 X3 B1 r2 i* V1 i0 `) R - process = NULLTAG;
+ [5 ^ q7 @4 m0 c: w - + a) b) [& p. [. W9 ]
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );& f% t. ]- U9 M! x2 Q
- EXIT_IF_NULL( rev );, b6 Z. I( I1 R8 \- ^& [0 @
- # e( ]! F) h# }8 ^4 l& n
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 0 B0 b2 t& o% e) R ^' k3 s2 ~
- EXIT_IF_NULL( process_template );
& M- t3 @3 v: I t! t8 M
+ s4 v+ Q( A0 l! C' G7 i- % t3 J d/ K. I5 L" b* s* p6 [
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
2 j4 L7 @3 a$ e% N3 q1 j- O - attach_types, &process) );2 j: j8 s- R; Y+ z
- A% S# j6 b& _" M! E# O: J- EXIT_IF_NULL( process );
, _5 F) C$ l& _0 Q - }# c! I/ z5 b' g
5 h u& `0 ]# q9 c' i3 C$ \, N- int ITK_user_main(int argc, char* argv[])8 G; a2 V! R! _2 D* y
- {
& ?' w* u# ]& n - int
! y# R' K2 @3 k# }1 N9 \. P - status = 0;
/ p0 B( ]0 {& U! o$ ^6 D - ) m: |8 t) U8 u% X1 ~( v
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
9 H+ D. |- n- F7 b - status = ITK_auto_login();9 z- Q2 x, `& o: q3 f
- 1 C( h) r( k' U
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
" o) ^* f% h' _. x; u6 g6 S - else+ C) N5 H" C0 F6 b( Z* V9 i
- {# L0 Z, { u; ?# q6 L7 d* _0 h7 p
- printf("\nLogin successful!\n\n");" w$ n( }0 n4 \% D3 C- Y
- ITK_set_journalling(TRUE);
; ?, _ b7 y* j2 ~ - do_it();1 B4 _: x( z+ V. y( D
- }0 P1 ~ z# N9 l! d. k0 I' j+ Z
- ITK_exit_module(TRUE);
, L7 V7 R9 d* ^* c - return status;
4 S3 q! G; Q6 v4 N - }
复制代码 ! w' h0 s- C5 W8 P' N# A6 U. r; R: V
) P* g; Q/ V: G
& f# m9 X0 M2 w) X; B' _- R
|
|